我正在尝试编写一个创建2D数组的简单程序,然后执行一个任务,该任务将该二维数组中的元素总和相加。到目前为止,这是我的代码:
#include <iostream>
#include <stdio.h>
int main()
{
int array [20][20];
int i, j;
int num_elements;
float sum;
for (i=0; i<num_elements; i++)
{
sum = sum + array[i];
}
return(sum);
// output each array element's value
for ( i = 0; i < 20; i++ )
{
for ( j = 0; j < 20; j++ )
{
printf("a[%d][%d] = %d\n", i,j, array[i][j] );
}
}
system ("PAUSE");
return 0;
}
我需要在开始下一个问题之前创建这个程序,即修改程序以便它使用函数来分解它。
我弹出一个错误说明如下:
error C2111: '+' : pointer addition requires integral operand
还有下面的代码
sum = sum + array[i];
这里的问题是表达式必须具有算术或未结合的枚举类型。
任何人都可以帮我吗?解释我哪里出错了。我已经在线研究了这个问题,但仍然无法修复它,因为我试图修复它,我得到更多的错误。 如果有人可以给我一个代码示例,非常感谢
新规范:工作。只需打印出总和
#include <iostream>
#include <stdio.h>
int main()
{
int array [3][5] =
{
{ 1, 2, 3, 4, 5, }, // row 0
{ 6, 7, 8, 9, 10, }, // row 1
{ 11, 12, 13, 14, 15 } // row 2
};
int i, j=0;
int num_elements=0;
float sum=0;
for (i=0; i<num_elements; i++)
{
sum = sum + array[i][j];
}
// output each array element's value
for ( i = 0; i < 3; i++ )
{
for ( j = 0; j < 5; j++ )
{
printf("a[%d][%d] = %d\n", i,j, array[i][j] );
}
}
system("PAUSE");
return(sum);
}
答案 0 :(得分:1)
您将数组定义为二维。但是在循环中
for (i=0; i<num_elements; i++)
{
sum = sum + array[i];
}
你将它用作一维。但事实上,你使用指向一维数组的指针进行操作。并且编译器报告了这个错误。
此外,初始化变量num_elements和变量sum。并且没有人知道输入数组的值的位置。:)
此返回语句也没有意义
return(sum);
您的行动计划如下:
1. Enter values for elements of the array
2. Print out the entered array
3. Calculate the sum of all elements
4. Print out the sum.