我想在C中输入非常大的数字。我还想计算其数字的总和。有没有办法输入非常大的数字?
这是我的代码。
#include<stdio.h>
main() {
int sum=0,rem;
int a;
printf("Enter a number:-");
scanf("%d",a);
}
答案 0 :(得分:0)
ANSI C C99中的最大类型是int的long long int。在C中无法直接使用200位数字,除非您将其视为char *并对其进行处理。
很抱歉,但您显示的基本代码段和&amp;你想要达到的目标实际上是非常遥远的另一个......如果你更具体一点,你想要什么样的计算可能会给你一个关于。
答案 1 :(得分:0)
有限制。有些编译器只有64位整数,有些则有128位。所以你不能使用这些整数类型。
您可以尝试使用GMP library。 GMP支持使用2^37 bits的64位构建整数。
答案 2 :(得分:0)
您可能不想将所有这200个数字加载到内存中。当你想要计算的只是数字的总和时,你在程序中需要的只是一些累加器变量,存储到目前为止的数字之和。此变量的类型可以是int
,因为200 * 9 <= INT_MAX
在符合C的实现时始终为true。
#include <stdio.h>
int main(void) {
int accumulator = 0;
int read_result;
printf("Enter a number:-");
while (1) {
read_result = fgetc(stdin);
if ('0' <= read_result && read_result <= '9') {
accumulator += read_result - '0';
} else {
break;
}
}
printf("The sum of the digits is %d", accumulator);
return 0;
}