C - 来自未知数字的最大数量

时间:2017-12-23 21:22:46

标签: c matrix max

我再来一次,请求你的帮助。

我将在下面提问,这是我的代码:

#include <stdio.h>

int main ()
{
    int matrix[10][10];
    int nrows, ncols, i, j, tmp, rsum, smax;

    printf("Enter number of rows: "); //user enters number of rows
    scanf("%d", &nrows);
    if(nrows < 2){
        printf("\n Out of range, please try again");
        exit(5);
    }

    printf("Enter number of columns: "); //user enters number of columns
    scanf("%d", &ncols);
    if(ncols < 2){
        printf("\n Out of range, please try again");
        exit(5);
    }

    printf("Enter matrix elements: "); //user enters all the elements for Matrix
    //Run over every element + ONLY POSITIVE LOOP
    for(i = 0; i < nrows; i++){
        for(j = 0; j < ncols; j++){
            tmp=0;
            scanf("%d",&tmp);
            while(tmp<0){
                printf("Only Positive Numbers!!!\n");
                scanf("%d",&tmp);
            }
            matrix[i][j]=tmp;
        }
    }

    //Print finished matrix
    printf("This is your matrix: \n");
    for(i = 0; i < nrows; i++){
        for(j = 0; j < ncols; j++){
            printf("%d \t",matrix[i][j]);
        }
        printf("\n");
    }

    //Print sum of each row
    for(i=0; i<nrows; i++){
        rsum = 0;
        for(j=0; j<ncols; j++){
            rsum += matrix[i][j];
        }
        printf("\nSum of elements of Row %d = %d\n", i+1, rsum);
    }

    //print row with highest sum

    return 0;
}

所以,我有矩阵并且有一些任务要做,限制用户只输入正数,每行的总和等等。 现在我需要从行数中找到最大的数字,我不知道我将拥有多少数字,我需要能够处理任意数量的数字。

以下是代码输出:

Enter Number Of Rows: 3
Enter Number of Columns: 3
Enter Elements: 1 2 3 4 5 6 7 8 9

This Is Your Matrix:
1   2   3
4   5   6
7   8   9

Sum Of Elements Of Row 1 = 6
Sum Of Elements Of Row 2 = 15
Sum Of Elements Of Row 3 = 24

我想检查所有行的总和并打印出最大的行,对于上面的示例,应该将此类内容添加到此输出中:

Row With Largest Sum [Row Number] = [Row Sum]

等待你的帮助。

1 个答案:

答案 0 :(得分:0)

在获得行数和列数后定义矩阵,如下所示:

unsigned rows = 0;
unsigned columns = 0;

// Rows
printf("Number of rows: ");
scanf("%u", &rows);

// Columns
printf("Number of columns: ");
scanf("%u", &columns);

// Matrix
int matrix[rows][columns];