gpt4 book ai didi

c - 如何使用用户输入的 int 类型定义数组中的元素数量?

转载 作者:行者123 更新时间:2023-11-30 15:33:32 26 4
gpt4 key购买 nike

我是初学者。我正在尝试解决一个对和程序。该程序要求添加的对数和实际对,然后返回每对的总和。我使用一个数组来存储每对的总和,但是当我打印出每个元素时,最后一个总是错误的。这是我到目前为止所拥有的:

int c, val1, val2, x, i;

printf("Enter the number of pairs to sum: \n");
scanf("%d", &c);
int sum [c];
printf("Enter the pairs: \n");
for ( x = 0; x < (c - 1); ++x)
{
scanf("%d", &val1);
scanf("%d", &val2);
sum [x] = val1 + val2;
val1 = 0;
val2 = 0;
}

printf("The sum of each pair is: \n");
for (i = 0; i < c; ++i)
{
printf("%d\t", sum[i]);
}

最佳答案

改变这个

for ( x = 0; x < (c - 1); ++x)

对此:

for ( x = 0; x < c; ++x)

您将一直到 (c-1),在此打印 c 次。

因此,修复后,您的循环将如下所示:

printf("Enter the pairs: \n");
for ( x = 0; x < (c - 1); ++x)
{
scanf("%d %d\n", &val1, &val2 );
sum [x] = val1 + val2;
val1 = 0; // Do you really need me?
val2 = 0; // and me?
}

您不需要在每个循环结束时使 val1val2 无效。

第一次进入循环时请思考。这些变量未初始化,但它们由 scanf() 初始化。

假设用户输入了 0 和 1,因此您的变量分别获得了这些值。

然后,将它们设置为零。

然后,您再次进入循环,变量将被分配用户的输入。

等等...

想想如果您放弃此步骤,这将如何工作:

Then, you set them to zero.

结果是一样的!

唯一的区别是,当您退出循环时,这些变量将具有用户上次运行循环时键入的内容,而不是零值,但我认为这不是问题。 :)

关于c - 如何使用用户输入的 int 类型定义数组中的元素数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642316/

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