CoderCatt @ 2021-11-13 16:46:33
#include<stdio.h>
int main()
{
char a[11],ch;
int i,t=0;
scanf("%c-%c%c%c-%c%c%c%c%c-%c", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);
for (i = 1; i < 10; i++) {
t = t + (a[i-1]-'0') * i;
}
if (t%11 < 10)
ch = t%11;
else
ch = 'X';
if ("ch==a[9]")
printf("Right");
else
printf("%c-%c%c%c-%c%c%c%c%c-%c", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], ch);
}
by Xeqwq @ 2021-11-13 17:08:47
有好几个bug:
1.isbn一共有10位,你在17行输出有问题 只输出了9个
2.你11行的转化要转回char
3.你14行的判断不能带引号 否则是一个字符串 只要它存储的不是空的就会返回true
by Xeqwq @ 2021-11-13 17:09:14
附赠ac代码:
#include<stdio.h>
using namespace std;
int main()
{
char a[11],ch;
int i,t=0;
scanf("%c-%c%c%c-%c%c%c%c%c-%c", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);
for (i = 1; i < 10; i++) {
t = t + (a[i-1]-'0') * i;
}
if (t%11 < 10)
ch = char(t%11+'0');
else
ch = 'X';
if (ch==a[9])
printf("Right");
else
printf("%c-%c%c%c-%c%c%c%c%c-%c", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], ch);
}
by Xeqwq @ 2021-11-13 17:13:15
以后写求助帖请注释自己的代码的意思
你可以这样写:
#include <stdio.h>
int main()
{
int a,b;//定义两个变量
scanf("%d%d",&a,&b);//输入
printf("%d%d",a+b);//输出
}
这个注释的内容编译器不会识别在代码中 可以让自己或别人明白它的意思 代码以后会很复杂
by Xeqwq @ 2021-11-13 17:14:45
@CoderCatt
by CoderCatt @ 2021-11-13 17:34:32
@整活队长xeq 明白明白