60分,单机vs调试没发现问题,大佬们求助,求助!

P1055 [NOIP2008 普及组] ISBN 号码

希望更丰富的展现?使用Markdown
by ニヒル @ 2019-02-20 10:59:28


``` #include<stdio.h> #include<stdlib.h> int main() { char a[13]; int b = 0 ,k=0; //char c=0; //int i; scanf("%s", a); b = (a[0]-'0') * 1 + (a[2]-'0') * 2 + (a[3]-'0') * 3 + (a[4] - '0') * 4 +( a[6] - '0') * 5 + (a[7] - '0') * 6 +( a[8] - '0') * 7 + (a[9] - '0') * 8 + (a[10] - '0') * 9; if (a[12]-'0' == b % 11) { printf("%s", "Right"); } else if (a[12] == 'X'&&b % 11 == 10) { printf("%s", "Right"); } else { if (b % 11 == 10) { a[12] = 'X'; //c = a[12]; } else { k = b % 11; a[12] = (char)k + 48; //c = a[12]; } printf("%s",a); } system("pause"); return(0); } ```
by sevenwaters @ 2019-02-20 11:45:47


你用的VS多少?
by 海之眷恋8 @ 2019-02-20 12:21:49


据我Viusal Studio2017亲测: **错误**:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“**#include "pch.h"**”? ``` pch.h为VS特点,洛谷不需要,可以忽略此错误 ``` **错误**:“scanf”: 找不到标识符 **错误**:“printf”: 找不到标识符 **错误**:“printf”: 找不到标识符 **错误**:“printf”: 找不到标识符 **错误**:“system”: 找不到标识符 ``` 此问题转移至Dev-C++,洛谷在线IDE后全部无误。 ``` 于是,编译全对。但是编译对≠AC。所以请你下载测试点,对比你的答案,再给出对于答案的代码修改。如果还不行,你可以选择去换一种思路,或者~~借鉴题解~~来解决问题。如果再不行,请放弃这道题。(不过这种可能性应该为0.)
by 海之眷恋8 @ 2019-02-20 12:56:29


@[海之眷恋8](/space/show?uid=131288) vs2015,我选择放弃这个题,233.怎么 才能达到AC要求?这段代码有问题吗?
by sevenwaters @ 2019-02-20 14:15:24


@[海之眷恋8](/space/show?uid=131288) 把获取字符方式从scanf换成了getchar,居然AC了,是编译器的问题,还是代码的问题?弱弱的问
by sevenwaters @ 2019-02-20 14:30:26


em...可能是编译器问题。因为我好像发现VS的C++有点问题。你最好下次换个Dev之类的。VS适合写大型程序。它的代码规则和C++17的吻合度仅55%。洛的评测机和C++17的吻合度达到85%,应该不会有问题。这个事情好像有点神秘呢...
by 海之眷恋8 @ 2019-02-23 13:46:19


# AC代码 ``` #include<bits/stdc++.h> using namespace std; int len,j; string a; int mod[20]={0,1,2,3,4,5,6,7,8,9,40}; int sum=0; int main(){ cin>>a; len=a.length(); j=0; for(int i=0;i<11;i++){ if(a[i]=='-')continue; sum=sum+(a[i]-48)*(++j); } if(mod[sum%11]==a[len-1]-48)puts("Right"); else { a[len-1]=mod[sum%11]+48; cout<<a<<endl; } return 0; } ```
by 【诸葛村夫】 @ 2019-02-23 20:33:30


|