2 C错误不兼容类型和预期类型
我试图从用户输入中存储3组5个双倍数字。 我需要将信息存储在一个3x5数组中,并计算每组五个值的平均值 我不知道如何修复两个错误 第一个错误: hw9.c:27:2错误:“set_average”的参数1的类型不兼容 设置_平均值(数组[行][列]); ^ 第二个错误: hw9.c:8:6:注意:应为'double(*)[5]”,但参数的类型为'double' void set_average(双数组[行][COL]) 谢谢你的帮助和建议2 C错误不兼容类型和预期类型,c,C,我试图从用户输入中存储3组5个双倍数字。 我需要将信息存储在一个3x5数组中,并计算每组五个值的平均值 我不知道如何修复两个错误 第一个错误: hw9.c:27:2错误:“set_average”的参数1的类型不兼容 设置_平均值(数组[行][列]); ^ 第二个错误: hw9.c:8:6:注意:应为'double(*)[5]”,但参数的类型为'double' void set_average(双数组[行][COL]) 谢谢你的帮助和建议 #include <stdio.h> #de
#include <stdio.h>
#define ROW 3
#define COL 5
void set_average(double array[ROW][COL]);
void all_average(double array[ROW][COL]);
void find_largest(double array[ROW][COL]);
int main(void)
{
double array[ROW][COL];
int i, j;
printf("Enter three sets of five double numbers.\n");
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
{
printf("Enter elements until done.\n");
printf("Enter %d%d: ",i+1,j+1);
scanf("%le", &array[i][j]);
}
printf("Done entering numbers.\n");
printf("Now it's time to compute the average of each set of five values\n");
set_average (array[ROW][COL]);
return 0;
}
void set_average(double array[ROW][COL])
{
int r; //row
int c;
double sum;
double avg; //average
for (r = 0; r < ROW; r++)
for (c = 0; c < COL; c++)
{
sum += array[r][c];
}
avg = sum / 5;
printf("The average is %le\n", avg);
}
#包括
#定义第3行
#定义第5列
void set_average(双数组[行][COL]);
无效所有_平均值(双数组[行][列]);
void find_最大(双数组[行][COL]);
内部主(空)
{
双数组[行][列];
int i,j;
printf(“输入三组五个双精度数字。\n”);
对于(i=0;i<3;i++)
对于(j=0;j<5;j++)
{
printf(“输入元素直到完成。\n”);
printf(“输入%d%d:,i+1,j+1);
scanf(“%le”、&array[i][j]);
}
printf(“完成输入数字。\n”);
printf(“现在是计算每组五个值的平均值\n的时候了”);
设置_平均值(数组[行][列]);
返回0;
}
无效集合\u平均值(双数组[行][列])
{
int r;//行
INTC;
双和;
双平均值;//平均值
对于(r=0;r|
您正在作为调用函数
set_average (array[ROW][COL]);
而不是
set_average (array);
函数被定义为
void set\u average(双数组[ROW][COL])
,因此它需要一个行的数组。每个都有一个双倍的COL
项数组。报告了错误,因为调用函数时只使用了一个double
作为参数。您需要将完整数组传递给函数
set_average (array);
当你经过的时候
set_average (array[ROW][COL]);
它将只发送单个值,即数组[3][5]
在set_average
函数中,您没有初始化双和的值代码>。用零初始化sum
,否则您将得到错误的输出。尝试以下操作:
try this:
------------------
#include <stdio.h>
#define ROW 3
#define COL 5
void set_average(double array[][COL]);
int main(void)
{
double array[ROW][COL];
int i, j;
printf("Enter three sets of five double numbers.\n");
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
{
printf("Enter elements until done.\n");
printf("Enter %d%d: ",i+1,j+1);
scanf("%le", &array[i][j]);
}
printf("Done entering numbers.\n");
printf("Now it's time to compute the average of each set of five values\n");
set_average( array );
return 0;
}
void set_average( double array[ ][5] )
{
int r; //row
int c;
double sum;
double avg; //average
for (r = 0; r < ROW; r++)
for (c = 0; c < COL; c++)
{
sum += array[r][c];
}
avg = sum / 5;
printf("The average is %le\n", avg);
}
------------------
#包括
#定义第3行
#定义第5列
void set_average(双数组[][COL]);
内部主(空)
{
双数组[行][列];
int i,j;
printf(“输入三组五个双精度数字。\n”);
对于(i=0;i<3;i++)
对于(j=0;j<5;j++)
{
printf(“输入元素直到完成。\n”);
printf(“输入%d%d:,i+1,j+1);
scanf(“%le”、&array[i][j]);
}
printf(“完成输入数字。\n”);
printf(“现在是计算每组五个值的平均值\n的时候了”);
设置平均值(数组);
返回0;
}
无效集_平均值(双数组[][5])
{
int r;//行
INTC;
双和;
双平均值;//平均值
对于(r=0;r|