帮我看一道C题目,我怎么找也找不出错误。急!!

来源:百度知道 编辑:UC知道 时间:2024/05/27 22:14:36
代码:

#include <stdio.h>
#include <stdlib.h>
char *sum1(char*,char*);

main()
{

char b[10]={"11111"};
char c[10]={"22222"};
printf("%s",sum1(b,c));
}
char *sum1(char *a,char *p)
{
int z;
char *l;
z=atoi(a)+atoi(p);
itoa(z,l,10);
return l;
}

到底那里错了???

#include <stdio.h>
#include <stdlib.h>
char *sum1(char*,char*);
void main()
{

char b[10]={"11111"};
char c[10]={"22222"};
printf("%s",sum1(b,c));

}

char *sum1(char *a,char *p)
{
int z;
char *l;
char xa[2]={1,2};
l=xa;
z=atoi(a)+atoi(p);
itoa(z,l,10);
return l;
}
你看看我改出来的就应该知道了
错误:l没有初始化
2主函数没有返回一个值也没有定义它是void型

itoa(z,l,10);

是什么函数?

你的数超范围
Int的范围是-32767-+32798,而你的atoi(a)+atoi(p)超过了范围,改成long就好了

int z;
应该用long z;吧..
int 的表示范围是-32768到32767
你的加起来都333333

#include <stdio.h>
#include <stdlib.h>
char *sum1(char*,char*);
main()
{
char b[5]={"11111"};
char c[5]={"22222"};
printf("%s",sum1(b,c));
sum1(b,c);
}
char *sum1(char *a,char *p)
{
int z