社区讨论
C语言:求教一个邪门的问题
P1055[NOIP 2008 普及组] ISBN 号码参与者 8已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @lodk02ug
- 此快照首次捕获于
- 2023/10/31 07:51 2 年前
- 此快照最后确认于
- 2023/11/06 23:03 2 年前
C
#include<stdio.h>
int main()
{
char s[14]={},p;
int num[10]={},i=0,j=0,sum=0,mod=0;
gets(s);
for(i=0;i<12;i++){
if(s[i]>='0'&&s[i]<='9'){
num[j]=(int)(s[i]-'0');
sum+=num[j]*(j+1);
j++;
}
}
mod=sum%11;
if(mod==10){
p='X';
}
if(s[12]=='X'){
num[9]=10;
}
else{
num[9]=(int)(s[12]-'0');
}
if(mod==num[9]){
printf("Right");
}
else{
if(mod==10){
s[12]='X';
}
else{
s[12]=mod+'0';
}
printf("%s",s);
}
}
以上代码检测时显示全对通过
但是后来我发现我没有用到字符p,将char p,以及后面的if(mod==10){
p='X';
}
全部删除,我觉得对代码的运行没有任何影响,但是这样检测时第八个没有通过,显示WA
。请问为什么啊。
回复
共 14 条回复,欢迎继续交流。
正在加载回复...