程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-關於二維數組的輸出最大值最小值以及下標的問題

c語言-關於二維數組的輸出最大值最小值以及下標的問題

編輯:編程解疑
關於二維數組的輸出最大值最小值以及下標的問題
int r,c;
int max_i = 0,max_j = 0,min_i=0,min_j=0;
int a[r][c];
int max=0,min=0;
printf("請輸入二維數組行(r),列(c):\n");
scanf("%d%d",&r,&c);
printf("請輸入數據:");
for (int i=0; i<r; i++) {       //輸入數據
    for (int j=0; j<c ; j++) {
        scanf("%d",&a[i][j]);
        printf("%d \t",a[i][j]);
        if (min>a[i][j]) {
            min=a[i][j];
            min_i=i;
                          min_j=j;}
        if (max<a[i][j]) {
            max=a[i][j];
            max_i=i;
            max_j=j;
        }

// min=a[0][0];

    }


}
  printf("最大數為:%d。下標為(%d , %d)\n",max,max_i,max_j);
  printf("最小數為:%d。下標為(%d , %d)\n",min,min_i,min_j);
return 0;

為什麼只能輸出最大值和下標,不能輸出最小值和下標,求大神告知

最佳回答:


很明顯,你這個程序有問題

問題是:你把最大最小值初始化為0了,然後拿0和你輸入的值進行比較。

你說只能輸入最大值,可能你輸入的全部是正數。
舉個例子
2*2的矩陣
我輸入 1 2 3 4,你的程序最大值為0,但是最小值就是0
我輸入-1 -2 -3 -4 , 你程序最大值為0,最小值為-4
這明顯是不合理的

建議在 printf("%d \t",a[i][j]); 後加上即可
if((i == 0)&&(j == 0))
{
min = max = a[0][0];
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved