我再来一次,请求你的帮助。
我将在下面提问,这是我的代码:
#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]
等待你的帮助。
答案 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];