如何在 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;
}