脑壳都蒙了

chowming 2010-07-10 12:19:24
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void add(char *a,char *b,char *c)
{
int len1 = strlen(a);
int len2 = strlen(b);
char *sum = (char *)malloc((len2>len1?len2:len1)+2);
memset(sum,0,(len2>len1?len2:len1)+2);
int i = len1-1,j = len2-1;
int count = (len2>len1?len2:len1);
while (i>=0 && j>=0)
{
sum[count] = sum[count] + a[i] + b[j] - '0';
if (sum[count] > '9')
{
sum[count-1] = (sum[count] - '0') / 10;
sum[count]=(sum[count] - '0')%10 + '0';
}

i--;
j--;
count--;
}

while (i>=0)
{
sum[count] = sum[count] + a[i];
if (sum[count] > '9')
{
sum[count-1] += (sum[count] - '0') / 10;
sum[count]=(sum[count] - '0')%10 + '0';
}

i--;
count--;
}
while (j>=0)
{
sum[count] = sum[count] + b[j];
if (sum[count] > '9')
{
sum[count-1] += (sum[count] - '0') / 10;
sum[count]=(sum[count] - '0')%10 + '0';
}

j--;
count--;
}
i = 0;
if (sum[count])
{
c[i] = sum[count] + '0';
i++;
}
count++;
while (sum[count])
{
c[i++] = sum[count++];
}
c[i] = '\0';
free(sum);
}

int main()
{
int a[100],b[100],c[101];
int N;
while(scanf("%d",&N) == 1)
{
char ch,ch1;
int block_start = 0;
int block_end = 0;
int i = 0;
for(i = 0;i!=N;i++)
{
int j = 0;
memset(c,0,sizeof(c));
memset(a,0,sizeof(a));
c[0] = '0';
while(1)
{
ch = getchar();
if (ch >='0' && ch <='9')
{
break;
}
}
a[j] = ch;
j++;
while(1)
{
while ((ch = getchar()) != '\n')
{
a[j++] = ch;
}
a[j] = '\0';
printf("%s\n",a);//惊奇的a
j = 0;
if (strcmp((char *)a,"0")==0)
{
N=0;
}
add((char *)c,(char *)a,(char *)c);
ch = getchar();
if (ch == '\n')
{
break;
}
}
printf("%s\n",c);
}
if(N==0)
{
break;
}
}
return 0;
}



搞大了,搞大了!!!
输入N=1
然后输入1234
a明明应该是1234,为什么只输出一个???明明a[0] = 49 a[1] = 50 a[2] = 51 a[3] = 52 a[4] = 0
为什么打印a出来就只有一个??真不可思议
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutengfeigo 2010-07-10
  • 打赏
  • 举报
回复
ameyume 2010-07-10
  • 打赏
  • 举报
回复
因为int a[100],a是int型数组,只输出第一个数组元素就结束了,只不过是以字符串的形式输出而已
如果改为char a[100]就可以输出1234了
brookmill 2010-07-10
  • 打赏
  • 举报
回复
int a[100],b[100],c[101];
这里是不是 char a[100],b[100],c[101];
我看你后来都把他们当字符串在用
healer_kx 2010-07-10
  • 打赏
  • 举报
回复
题干?
ww884203 2010-07-10
  • 打赏
  • 举报
回复
没心情细看。。。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧