具有数组类型的表达式的C错误赋值

时间:2016-12-13 08:45:45

标签: c arrays

我必须编写一个代码,它首先从文件中读取矩阵然后显示它。它还必须对矩阵的列求和并找到最大的总和并显示它。编译器在第23行说明了错误:使用数组类型赋值给表达式。如何修复它(除了我所有的其他错误)?

提前谢谢你。 这是我的code

#include <stdio.h>

#define ROWS 15
#define COLS 15

int readMatrix(int r,int c, int Matrix[ROWS][COLS]);
void printMatrix(int Matrix[ROWS][COLS], int r,int c);  
int Sum(int Matrix[ROWS][COLS], int r,int c);
void Congratulations(int Matrix[COLS], int c);

int main(void)
{ 
    int Sales[ROWS][COLS];
    int Kokku[COLS];
    int rows, cols;
    int Matrix[ROWS][COLS];

    scanf("%d", &rows); //loeb dokumendist ridade arvu
    scanf("%d", &cols); //loeb dokumendist veergude arvu

    readMatrix(rows, cols, Matrix); //maatriksi sisselugemine
    printMatrix(Matrix, rows, cols); //maatriksi väljaprint
    Kokku = Sum(Sales, rows, cols); //müügitulemuste arvutus
    Congratulations(Kokku, cols); //Parima leidmine ja tunnustus

    return 0; 
}
int readMatrix(int r,int c, int Matrix[ROWS][COLS])
{
    int i = 0, j = 0;
    int sellingTable;
    for(i = 0; i < r; i++)
    {
        for(j = 0; j < c; j++)
        {
            scanf("%d", &Matrix[i][j]);
            sellingTable = i;
        }
    scanf("\n");
    }
    return sellingTable;
}
void printMatrix(int Matrix[ROWS][COLS], int r,int c)
{
    int i, j;
    printf("Tabel:");
    j = 0;
    do
    {
        printf("M%2d", j + 1);
        j++;
    }
    while(j <= c);
    for(i = 0; i < r; i++)
    {
    printf("Kaup%2d", i + 1);
        for(j = 0; j < c; j++)
        {
            printf("%4d", Matrix[i][j]);
        }
    printf("\n");
    }
}
int Sum(int Matrix[ROWS][COLS], int r,int c)
{
    int i, j, sum;
    int Summa[c];

    printf("Kokku:");

    for(j = 0, sum = 0; j < c; j++)
    {
        for(i = 0; i < r; i++)
        {
            sum = Matrix[i][j] + sum;
            Summa[j] = sum;
        }
    printf("%4d", Summa[j]);
    }
    return sum;
}
void Congratulations(int Matrix[COLS], int c)
{
    int j, temp;
    for(j = 0; j < c; j++)
    {
        if(Matrix[j]>Matrix[j + 1])
        {
            temp = Matrix[j];
            Matrix[j] = Matrix[j + 1];
            Matrix[j + 1] = temp;
        }
    }
    printf("Parim; nr %d, %d", c, Matrix[c]);
}

1 个答案:

答案 0 :(得分:0)

int Kokku[COLS];
...
Kokku = Sum(Sales, rows, cols);

简单地按照编译器的说法进行操作,并且不要尝试将函数的结果分配给int返回到int数组的变量。