如何在 C 中输入非常大的数字(超过 200 位)?
How can I input very large numbers(more than 200 digits) in C?
我想在C.And中输入非常大的数字我也想计算它的总和digits.Is有没有办法输入非常大的数字?
这是我的代码。
#include<stdio.h>
main() {
int sum=0,rem;
int a;
printf("Enter a number:-");
scanf("%d",a);
}
ANSI C C99 中的最大类型是 long long int for ints。在 C 中无法直接使用 200 位数字,除非您将其视为 char * 并对其进行处理。
抱歉,但是您显示的基本代码片段和您想要达到的 objective 真的非常遥远......如果你更具体一点,你想要什么样的计算或许可以帮您一下。
有限制。有些编译器只有一个 64 位的整数,有些是 128 位的。所以你不能使用这些整数类型。
您可以尝试使用GMP library. GMP supports on 64-bit builds integers with 2^37 bits。
您可能不想将这 200 位数字全部加载到内存中。当您想要计算的只是数字的总和时,那么在您的程序中您所需要的只是一些累加器变量,用于存储到目前为止 的数字总和。该变量的类型可以是 int
,因为 200 * 9 <= INT_MAX
在符合 C 的实现中始终为真。
#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;
}
我想在C.And中输入非常大的数字我也想计算它的总和digits.Is有没有办法输入非常大的数字?
这是我的代码。
#include<stdio.h>
main() {
int sum=0,rem;
int a;
printf("Enter a number:-");
scanf("%d",a);
}
ANSI C C99 中的最大类型是 long long int for ints。在 C 中无法直接使用 200 位数字,除非您将其视为 char * 并对其进行处理。
抱歉,但是您显示的基本代码片段和您想要达到的 objective 真的非常遥远......如果你更具体一点,你想要什么样的计算或许可以帮您一下。
有限制。有些编译器只有一个 64 位的整数,有些是 128 位的。所以你不能使用这些整数类型。
您可以尝试使用GMP library. GMP supports on 64-bit builds integers with 2^37 bits。
您可能不想将这 200 位数字全部加载到内存中。当您想要计算的只是数字的总和时,那么在您的程序中您所需要的只是一些累加器变量,用于存储到目前为止 的数字总和。该变量的类型可以是 int
,因为 200 * 9 <= INT_MAX
在符合 C 的实现中始终为真。
#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;
}