可能是判断出了问题
0-670-82162-X
这是测试点2的输入与输出,据题意输入与输出不能相同
by wyd54088 @ 2023-09-09 13:00:22
有没可能这个int把他转换为ASCII编码了
if((int)a[13]==t){
printf("Right");
}else{
a[13]=t;
printf("%s",a);
}
by wyd54088 @ 2023-09-09 13:11:55
导致他算错输出别的数,或者不输出right
by wyd54088 @ 2023-09-09 13:14:29
这么做的话是s[i]应减去'0',可以使他恢复整型1~9几个数字因为(int('1'))=49,减去‘0’等于49-48(零的ASCII值),10的话就特判
by wyd54088 @ 2023-09-09 13:20:54
循环那用这段
if(s[i]!='-'){
j++;
sum+=j*(s[i]-'0');
}
by wyd54088 @ 2023-09-09 13:23:59
后面判断用
if(h==10){
a[13]='X';
}
else{
a[13]=h+'0';
}
by wyd54088 @ 2023-09-09 13:26:13
这里弄反了
if((int)a[13]==t){
printf("Right");
应为
if(t==a[13]){
printf("Right");
by wyd54088 @ 2023-09-09 13:33:12
我帮你改了亿下,c语言全错
c++全对
尴尬的局面,可能因为我学的c++吧
by wyd54088 @ 2023-09-09 14:08:36
```cpp
int main(){
char a[14],ch;
cin>>a;
int sum=0,j=0;
for(int i=0;i<11;i++){
if(a[i]!='-'){
j++;
sum+=j*(a[i]-'0');
}
}
sum%=11;
if(sum==10){
ch='X';
}else{
ch=sum+'0';
}
if(ch==a[12]){
cout<<"Right"<<endl;
}else{
a[12]=ch;
cout<<a;
}
return 0;
}
by wyd54088 @ 2023-09-09 14:19:31
真服了
by wyd54088 @ 2023-09-09 14:30:36