C ++中的2D数组-

时间:2019-06-03 11:35:45

标签: c++ multidimensional-array

我正在尝试完成涉及c ++的作业。我正在使用Dev C ++来构建它。我已尽力做到这一点。

这些是必须满足的要求:

  1. 构建一个2D阵列,该阵列将记录分配标记和检查标记
  2. 输入分配标记和检查标记
  3. 计算平均分配分数和检查分数
  4. 计算总成绩和考试成绩
  5. 输出所有计算出的分数

它返回此错误:

  

[错误]类型为'int [2] [10]'和'int'的无效操作数到二进制运算符&[错误]类型为'int [3] [10]'和'int'的无效操作数到二进制运算符

这是我想出的代码:

main()
{
int assignment_marks [2] [10];
int examination_marks [3] [10];

float average_marks;
int total_marks;
int num;
int i;

printf ("input assignment marks:");
for (i=0; i<=10; i++)
scanf ("%d" , &assignment_marks [i] );

printf ("input examination marks:");
for (i=0; i<=20; i++)
scanf ("%d" , &examination_marks [i] );

printf ("calculate average assignment marks :");
scanf ("%d" , &average_marks);
average_marks = assignment_marks / 10;

printf ("calculate average examination marks :");
scanf ("%d" , &average_marks);
average_marks = examination_marks / 10;

for (i = 0; i <= 10; i++)

{

printf ("calculate total assignment marks :");
scanf ("%d" , &total_marks);
total_marks = assignment_marks / 100*100 ;
printf ("calculate total examination marks :");
scanf ("%d" , &total_marks);
total_marks = examination_marks / 100*100 ;


}


}

1 个答案:

答案 0 :(得分:1)

好的,您想要做的是,您正在尝试将整个数组除以10。这是示例: 我们有一个数组

1
2
3
4

作为值,所有这些都存储在我们的变量array中。

如果要在整个数组中累积值,请执行以下操作:

  • 我们创建一个临时变量
  • 我们用它来保存数组元素
  • 的当前值
  • 然后我们转到下一个元素

好的,现在让我们看看它如何在代码中工作:

int sum(0);

for(int i = 0; i < 4; i++)
   sum = sum + array[i];

这是怎么回事,这些变量都是什么?我们创建一个for循环来逐一遍历数组的元素。我们获得每个元素的值,然后将其求和到变量sum中。

  • i用作获取每个元素的迭代器
  • sum作为汇总所有元素的累加器
  • array是我们的数组
  • i < 4是因为我们总共有4个元素,0 to 3作为索引。

如果要除法,可以应用相同的方法,但是在摘要后除法。让我给你一个练习的真实例子:

我们有一个包含考试分数的数组。例如double scores[] = { 5.5, 3.4, 4.5, 5.7 };,我们希望获得学生的平均分数。请注意,我们有 4项考试

double scores[] = {
   5.5,
   3.4,
   4.5,
   5.7
};

double sum = 0;

for(int i = 0; i < 4; i++)
   sum += scores[i];

double average = (sum / 4);

如您所见,相同的逻辑,我们遍历数组的每个元素,累加到某个变量,然后在这里加法,就是除以我们拥有的考试数量,以求出平均得分