我有一个问题:
创建一个将大整数作为字符串输入的C程序。
然后将每个字符转换为相应的数字。
在那之后,我必须创建一个有3个矩阵的函数addBigNumbers()
。
addBigNumbers(char *a1, char *a2, char *res)
a1和a2将包含我要添加的两个大数字,res将包含这些数字的和作为数字序列。我们想要我们创建的函数来检查字符串是否只包含数字。
如果只包含数字,则res等于1,并打印这些数字的总和,否则res等于0(最大数字长度为1000)
在第一个函数之后,我们想创建一个用于减法的函数。
到目前为止,我还没有得到减法,因为我卡在第一个,我需要你的帮助。
这是我到目前为止所拥有的代码:
#include <stdio.h>
#include <stdlib.h>
#define N 1000
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int addHugeNumbers(char *a1, char *a2, char *res){
int y=0, u=0, h=0;
res=strcat(a1,a2);
if(strlen(a1)>strlen(a2)){
y=atoi(a1);
u=atoi(a2);
h=y+u;
}
else{
y=atoi(a1);
u=atoi(a2);
h=u+y;
}
printf("%d", h);
}
int main(int argc, char *argv[]) {
char res[N];
char a1[N/2];
char a2[N/2];
scanf("%s", &a1);
scanf("%s", &a2);
addHugeNumbers(a1, a2, res);
return 0;
}
我的问题是,如果我输入ex。23 23,它输出2346,这显然是错误的,但它得到了46正确,当我输入1234 123时,它输出了1234246,这是完全错误的。
奇怪的是,如果我输入像1234r 123之类的东西,或者其他任何包含字符的东西,它都会输出精确的和。
https://stackoverflow.com/questions/50775610
复制相似问题