室榕 發問時間: 電腦與網際網路程式設計 · 2 0 年前

c++的習題寫不出來

寫一個程式來輸入二維陣列(大小為3*4)之各個元素的數值(浮點),最後找出各行及各列的最大值, 將此表印出如下所示

   Col 1   Col 2   Col 3   Col 4  Max.

Row 1   10.20   13.30   24.56   34.43   34.43

Row 2   23.40   13.24   33.32   44.54   44.54

Row 3   45.30   23.45   33.32   46.32   46.32

Max.   45.30   23.45   33.32   46.32   46.32

1 個解答

評分
  • 2 0 年前
    最佳解答

    float array[4][5];

    int i, j;

    array[3][4]的各值以題目給的為例;

    使各行列的最大值初始化

    array[3][0] = array[0][0]; // 10.20

    array[3][1] = array[0][1]; // 13.30

    array[3][2]= array[0][2]; // 24.56

    array[3][3]= array[0][3]; // 34.43

    array[0][4]= array[0][0]; // 10.20

    array[1][4]= array[1][0]; // 23.40

    array[2][4]= array[2][0]; // 45.30

    ---------列----------

    for (i = 1; i < 4; i++) // 從第二個開始比

    if (array[0][i] > array[0][4])

    array[0][4] = array[0][i];

    for (i = 1; i < 4; i++) // 從第二個開始比

    if (array[1][i] > array[1][4])

    array[1][4] = array[1][i];

    for (i = 1; i < 4; i++) // 從第二個開始比

    if (array[2][i] > array[2][4])

    array[2][4] = array[2][i];

    ---------行----------

    for (i = 1; i < 4; i++) // 從第二個開始比

    if (array[i][0] > array[3][0])

    array[3][0] = array[i][0];

    for (i = 1; i < 3; i++) // 從第二個開始比

    if (array[i][1] > array[3][1])

    array[3][1] = array[i][1];

    for (i = 1; i < 3; i++) // 從第二個開始比

    if (array[i][2] > array[3][2])

    array[3][2] = array[i][2];

    for (i = 1; i < 3; i++) // 從第二個開始比

    if (array[i][3] > array[3][3])

    array[3][3] = array[i][3];

    array[3][4]= array[3][0]; // 45.30

    for (i = 1; i < 4; i++) // 找出各行最大值中的最大值

    if (array[3][i] > array[3][4])

    array[3][4] = array[i][3];

    for (i = 1; i < 3; i++) // 找出各列最大值中的最大值

    if (array[i][3] > array[3][4])

    array[3][4] = array[i][3];

    最後印出結果

    for (j = 0; j < 4; j++)

    {

    for (i = 0; i < 5; i++)

    printf (".2%f", array[j][i]);

    printf ("\n");

    }

    這不是最聰明的方法, 但是很容易懂 ^^

    2006-04-12 20:25:20 補充:

    最後的printf (".2%f", array[j][i]);要改成printf (" .2%f", array[j][i]);空一些SPACE ^^並在最後兩個 for 之中加上if (j == 3)printf ("MAX");else printf ("ROW %d", j); 醬就行了

    2006-04-12 20:29:14 補充:

    忘了你要用C++ ^^"不過只要把printf 寫成 cout的形式就行了這個你應該會就不多說了不懂可以再問 : )

還有問題?馬上發問,尋求解答。