首页 > 解决方案 > C中的双数组

问题描述

我正在学习C,课程的基础是C Primer plus(第6版)。我们使用 Eclipse 作为 IDE。

对于一个项目,我们必须创建数组。一个数组在循环中采用数字,另一个数组显示累积值。因此,如果数组 1 的值是 1、5 和 3(总共 10 个输入),那么数组 2 中的结果输入应该是 9(由于数组 1 中有 3 个输入,因此在第 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;
}

标签: arrayscloops

解决方案


家庭作业中的所有文本应阅读:

对于一个项目,我们必须创建两个数组......总共 10 个输入......

你到底为什么不声明它们?......你已经定义SIZE

double usernumbers[SIZE];
double cumulnumbers[SIZE];

接下来帮自己一个忙,一次处理一个问题:

一个在循环中接受数字的数组...

好的,所以直接将最多 10 个读取浮点数的循环写入数组,并注意接收到多少个数字

int n;
for(n=0; n<SIZE; n++) {
    if (scanf("%lf", &usernumbers[n]) != 1) break;
}
// ok we now have n number in the first array

让我们继续

和另一个显示累积值的数组。

Ok cumul 最初为 0。并且在第一个数组中的每个值上递增:

double cumul = 0.;
for(int i=0; i<n; i++) {
    cumul += usernumbers[i];
    cumulnumbers[i] = cumul;
}

推荐阅读