
以下是我写的代码,但是输出错误,我找不到在哪,大家看看错哪

实在是找不出来错哪
再给大家看看输出错误结果

使用字符数组操作
int main()
{
char a[16], b[16]; //字符数组有结束符故长度+1
int c[16] = { 0 };
int i, k = 0;
//for (i = 0; i < 15; i++)
scanf("%s", a); //字符串的操作,视为字数组依次赋值
getchar();
//for (i = 0; i < 15; i++)
scanf("%s", b);
for (i = 14; i >= 0; i--)
{
if (k + a[i] + b[i] -'0' -'0' >= 10) //字符数字(编码是好像是53开始,具体是多少我忘了)转换为数字 -‘0’
{
c[i + 1] = ((k + a[i] +b[i]) - 10 - '0' - '0');
k = 1;
//c[i] = 1;
}
else
{
c[i + 1] = k + a[i] + b[i] - '0' - '0';
k = 0;
}
}
for (i = 0; i < sizeof(c) / sizeof(c[0]); i++) {
if (c[0] == 0 && i==0) { //首位0不显示
continue;
}
printf("%d",c[i]);
}
return 0;
}
测试如下:
