|
|
1鱼币
# include <stdio.h>
# include <string.h>
# define MAX 101
int main(void)
{
//freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
int sum[MAX];
char str[MAX];
int n, i, j, len,c;
while (~scanf("%d", &n))
{
sum[MAX] = 0;
while (n--)
{
str[MAX] = NULL;
while (gets(str),strcmp("0",str))
{
len = strlen(str);
for ( i=j=(len-1);i >= 0;--i,--j ) //把字符转换成整数存储,,怎么sum中没有存入值呢?
{
sum[j] += (str[i] - '0');
}
int k;
for ( i=len-1;i >= 0;--i )
{
if(sum[i] > 10)
{
k = sum[i]/10;
sum[i-1] += k;
sum[i] = sum[i]%10;
}
else
{
sum[i] = sum[i];
}
}
}
for ( i=0;i < len;++i )
if(sum != 0)
printf("%d",sum[i]); //数组按位输出
printf("\n");
}
}
return 0;
}
|
最佳答案
查看完整内容
我感觉是你数组初始化的时候,有点不对,你的本意应该是把数组里的值都初始化为0,但是你的做法,是错误的,而且是越界赋值,sum【MAX】你想想在哪里啊,越界了啊,可以在声明的时候改成 sum[max]={0};
对于 str数组 同理,希望能解决你的问题!{:1_1:}
|