【发布时间】:2015-03-05 12:23:50
【问题描述】:
我正在尝试创建一个程序,该程序能够从用户那里获取最多 1000 位的两个数字,然后打印结果(使用 C(编程语言))
创建此程序的注意事项:
1-获取两个数字,使用长度为 1000 个字符的字符串。(考虑一个字符作为字符串末尾的零)
2-存储数字,使用两个长度为1000的数组块(家)。大数字的每个数字必须存储在单独的数组块中。(例如:365(“3”存储在一个块(家)和 6 存储在另一个块和...)
3-要获取字符串形式的数字并将其转换为数字数组、加法、减法和打印大数字,请使用单独的函数。 “main”函数必须非常小。
我写了这段代码,但不知道为什么它不起作用:
/*codes*/
#include <conio.h>
#include <stdio.h>
#define hang 1
void sinascan1(char sina[2],int i){
puts("Enter number 1");
gets(sina);
while (i != hang){
sina[i] -= 48;
printf ("%d\n", sina[i]);
i++;
}
}
void sinascan2(char sina1[2],int i){
puts("Enter number 2");
gets(sina1);
while (i != hang){
sina1[i] -= 48;
printf ("%d\n", sina1[i]);
i++;
}
}
void sinajam(char sina[2],char sina1[2],char jam[3],int i){
puts("____");
int f,g;
while (i != hang){
jam[i]=sina[i]+sina1[i];
printf ("%d\n", jam[i]);
i++;
}
}
int main()
{ int i=0;
char sina[2],sina1[2];
char jam[2];
sinascan1(sina,i);
sinascan2(sina1,i);
sinajam(sina,sina1,jam,i);
getch();
return 0;
}
我该怎么做?
【问题讨论】:
-
使用调试器检查您的代码。如果你在 linux 上,gdb 是一个不错的选择。如果windows下Visual Studio有很好的编译器/调试器组合。
-
编译器是 dev c++ ;
-
1) 代码中没有任何内容建议将输入限制为 1000 位。 2)
gets()肯定是个问题。使用fgets()。 -
“它不起作用”非常不精确。你用什么输入来测试它,结果是什么?
标签: c arrays string max digits