📜  输入C中没有空格的整数数组

📅  最后修改于: 2021-05-25 19:18:44             🧑  作者: Mango

如何输入没有空格的大数字(即使在long long int中也无法存储的数字)?我们需要整数数组中的这个大数字,以便每个数组元素都存储一个数字。

Input : 10000000000000000000000000000000000000000000000
We need to read it in an arr[] = {1, 0, 0...., 0}

在C scanf()中,我们可以指定一次读取的位数。在这里,我们只需要一次读取一位数字,因此我们使用%1d。

// C program to read a large number digit by digit
#include 
int main()
{
    // array to store digits
    int a[100000];
    int i, number_of_digits;
    scanf("%d", &number_of_digits);
    for (i = 0; i < number_of_digits; i++) {
  
        // %1d reads a single digit
        scanf("%1d", &a[i]);
    }
  
    for (i = 0; i < number_of_digits; i++) 
        printf("%d ", a[i]);
      
    return 0;
}

输入 :

27
123456789123456789123456789

输出 :

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 

我们还可以使用上述样式读取任意数量的固定数字。例如,下面的代码以3位为一组的数字读取大量数字。

// C program to read a large number digit by digit
#include 
int main()
{
    // array to store digits
    int a[100000];
    int i, count;
    scanf("%d", &count);
    for (i = 0; i < count; i++) {
  
        // %1d reads a single digit
        scanf("%3d", &a[i]);
    }
  
    for (i = 0; i < count; i++) 
        printf("%d ", a[i]);
      
    return 0;
}

输入 :

9
123456789123456789123456789

输出 :

123 456 789 123 456 789 123 456 789 

当我们使用fscanf()读取文件时,可以使用相同的概念

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。