【发布时间】:2021-12-06 08:56:03
【问题描述】:
我正在学习C,课程的基础是Cprimer plus(6th edition)。我们使用 Eclipse 作为 IDE。
对于一个项目,我们必须创建数组。一个数组在循环中采用数字,另一个数组显示累积值。因此,如果数组 1 的值是 1、5 和 3(总共 10 个输入),那么数组 2 中的结果输入应该是 9(在第 3 个输入上,因为数组 1 中有 3 个输入)。
我无法以正确的方式开始 - 这里的任何人都知道我该如何继续? 到目前为止,我有这个作为初学者,但原谅我它非常弱:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void doublearrays (double usernumber);
int main(void)
{
double usernumbers = 0.0;
int loop1 = 1;
while(loop1)
{
printf("Type numbers as doubles. \n");
fflush(stdout);
loop1 = scanf("%lf", &usernumber);
if(loop1)
{
doublearrays(usernumber);
}
}
return 0;
}
【问题讨论】:
-
离题,但
if(loop1)应该是if(loop1==1)。与循环条件相同:while(loop1)应为while(loop1==1)。 -
开始:创建一个静态分配的数组,读取固定数量的用户号码(如何在循环中完成?),将数组及其大小传递给函数。接下来的步骤是问自己:我知道用户愿意输入多少个数字吗?我应该动态分配内存吗?我怎么知道用户输入完数字?
-
用户输入可以有不同的长度。看起来你想创建创建动态数据结构。不幸的是,普通 C 在 C++ 中没有像矢量这样的动态容器
-
@Vlad 总共 10 个输入。无需动态分配
-
@Someprogrammerdude 你的建议是
if(loop)'应该是'if(loop==1)不会产生语义差异。我假设您知道这一点,并且您对其中一个的偏好是出于可读性目的?