2 C错误不兼容类型和预期类型

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

我试图从用户输入中存储3组5个双倍数字。 我需要将信息存储在一个3x5数组中,并计算每组五个值的平均值

我不知道如何修复两个错误

第一个错误: hw9.c:27:2错误:“set_average”的参数1的类型不兼容 设置_平均值(数组[行][列]); ^

第二个错误: hw9.c:8:6:注意:应为'double(*)[5]”,但参数的类型为'double' void set_average(双数组[行][COL])

谢谢你的帮助和建议

#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