2016-12-13 12 views
0

コードを書く必要があります。コードを最初にファイルから読み込んで表示する必要があります。また、行列の列を合計し、最大の和を見つけて表示する必要があります。コンパイラは23行目に配列型の式への代入とエラーがあると言っています。それを修正する方法(私が持っている他のすべての間違いに加えて)?配列型の式へのCエラーの割り当て

ありがとうございます。 私の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

1.コードへのリンクを投稿しないでください。無効にすることができます。 2.エラーを特定し、該当するセクションのみを投稿します。 3. 'Sum'は' int'を返し、それを配列として割り当てようとしています( 'int Kokku [COLS]')。あなたのコンパイラは、問題が何であるかについてはっきりしています。どこに問題がありますか? – UnholySheep

答えて

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

単にコンパイラが言うようにやるとintの配列である変数にintを返す関数の結果を代入しようとしないでください。

関連する問題