彬腾向前冲 @ 2021-08-17 18:32:50
#include <bits/stdc++.h>
using namespace std;
int main ()
{
char a[20]; char c;
cin >> a ;
int n = 0,sum = 0;
for (int i = 0 ; i < 11 ; i ++){
if (a[i]!='-') {
n ++ ;
a [i] = a[i] - '0';
sum += n * a[i];
}
}
sum %= 11 ;
if (sum == 10) c = 'X' ;
else c = sum + '0' ;
if (c == a[12]) cout << "Right" ;
else {
a[12] = c;
cout << a;
}
return 0 ;
}
大佬帮忙看一下我最后一块代码为什么错了 输出不了 调了一会了 就最后一步错了
by WZY718605 @ 2021-08-17 18:40:18
#include <bits/stdc++.h>
using namespace std;
int main ()
{
char a[20]; char c;
cin >> a ;
int n = 0,sum = 0;
for (int i = 0 ; i < 11 ; i ++){
if (a[i]!='-') {
n ++ ;
//a [i] = a[i] - '0';
sum += n *(a[i]-'0');
}
}
sum %= 11 ;
if (sum == 10) c = 'X' ;
else c = sum + '0' ;
if (c == a[12]) cout << "Right" ;
else {
a[12] = c;
cout<<a;
}
return 0 ;
}
第十五、十六行改了一下
by 彬腾向前冲 @ 2021-08-17 18:43:57
@WZY751205 这儿为什么错了 qwq
by WZY718605 @ 2021-08-17 18:49:03
a[i]减去一个字符零肯定会变的,你可以去查一下ascll码表
比如说a[i]='3',对应ascll的值是51,51减去48是三,这时候在输出a[i]就不是‘3’了
by WZY718605 @ 2021-08-17 18:50:38
sum += n *(a[i]-'0');
这里没有改变a[i]的值,不影响输出