psyche_xin @ 2024-12-02 11:50:49
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[9]={0};
char p;
int i=1;
int d=0;
while(i<=10)
{
if(i==2||i==5)
{
scanf("%c%d",&p,&a[i-1]);
d=d+a[i-1]*i;
}
else if(i==10)
{
scanf("%c",&p);
}
else
{
scanf("%d",&a[i-1]);
d=d+a[i-1]*i;
}
i++;
}
if(p=='X'&&d%11==10||(p-'0')==d/11)
printf("Right");
else if((d/11)!=10)
{printf("%d-%d%d%d-%d%d%d%d%d-",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
printf("%d",d%11);}
else
printf("%d-%d%d%d-%d%d%d%d%d-X",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
}
by Arefa @ 2024-12-02 12:12:57
使用 scanf("%d",&a[i-1])
读入数据的时候,并不是一位一位地读进来,例如对于 0-670-82162-4,读入了数字 0 和字符 '-' 之后,再读入一个数字,会得到 670 而不是 6。
by psyche_xin @ 2024-12-02 12:16:54
!感谢你的帮助,完全没想到@Arefa