gpt4 book ai didi

c - 将用户输入的大数字存储到整数数组中

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:39 26 4
gpt4 key购买 nike

我目前正在从事一个 C 项目,该项目需要创建、存储和数学使用太大而无法放入普通变量类型的数字。为此,我们被指示将数字表示为存储在整数数组中的数字序列。我使用这样定义的结构:

struct BigInt {
int val[300000];
int size;
};

(我知道我可以动态分配内存,那就是 更可取,但这是我最舒服的方式,它有 到目前为止工作得很好,这就是教授指导我们做的。)

然后我定义成员 A:

struct BigInt A={NULL};

我可以生成和存储随机数,然后用它来加、减和乘,它们可以有最多 300000 的任意数字(远远超过我需要计算的数字)。例如,如果生成数字 1432 并将其存储到 BigInt A 中,则 A.size 将为 4,A.val[2] 将为 3。

现在我需要创建一种方法来将用户输入存储到这种类型中。例如,用户需要能够直接输入 50!然后将其存储到我创建的这个结构数组类型中。我该怎么做呢?

我能想到的唯一方法是将用户输入存储为字符串,然后多次执行该字符串中的数学运算,每次存储不同的数字,或者直接从标准输出读取数字,但我不知道这些中的任何一个是否可能或是否可以解决我的问题。

最佳答案

您可以尝试使用如下字符串:

char s[300001];
scanf("%s", s);
A.size = strlen(s);
for(int i = 0; i < A.size; i++){
A.val[i] = s[i] - '0';
}

我认为它会解决你的问题,但这种实现大整数的方式效率不高。

关于c - 将用户输入的大数字存储到整数数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45271595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com