社区讨论
测试点#5#6#9报错的玄学问题
P1055[NOIP 2008 普及组] ISBN 号码参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo20d85r
- 此快照首次捕获于
- 2023/10/23 05:56 2 年前
- 此快照最后确认于
- 2023/11/03 06:20 2 年前
怪了,为什么把这个程序中
Cif (a[9]==x-'0'||a[9]==x-'X'+10)
这句改成
Cif (a[9]==x-'0'||a[9]==10)
就会出现一些错误
C//原程序如下:
#include <stdio.h>
int main()
{
int a[10],i;
char x,y;
scanf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&x);
for (i=0;i<9;i++) {
a[9]+=(a[i]*(i+1));
}
a[9]%=11;
if (a[9]==x-'0'||a[9]==x-'X'+10) {
printf("Right");
} else {
y=(a[9]==10)?'X':('0'+a[9]);
printf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],y);
}
return 0;
}
就说,上面这样写是跑得过的,但是改了之后就会报错#5#6#9这几个测试点,但很怪的是:
Cy=(a[9]==10)?'X':('0'+a[9]);
这句话原来就是这么写的但没出问题。。。
回复
共 2 条回复,欢迎继续交流。
正在加载回复...