ID4 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c++自由輸入成績平均分等第問題

由自由輸入成績產生平均依甲乙丙丁戊

90~100 為甲

80~90 為乙

......

60以下為戊

我只剩"等第"做不出來

請各位先進幫忙

程式如下:

#include <iostream.h>

#include <stdlib.h>

#include <stdio.h>

int main()

{

float score[5][9];

char name[5][10];

float high,low;

int cnt[5];

int i,j;

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

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

score[i][j]=00;

//把排名陣列初始化,每個都先為1

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

cnt[i]=1;

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

{

printf("請輸入第%d位同學姓名:",i+1);

scanf("%s",&name[i]);

// 以下為輸入成績的程式

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

{

if(j==0)

{

printf("第%d位同學國 文成績",i+1);

scanf("%f",&score[i][0]);

}

else if(j==1)

{

printf("第%d位同學英 文成績",i+1);

scanf("%f",&score[i][1]);

}

else if(j==2)

{

printf("第%d位同學電子學成績",i+1);

scanf("%f",&score[i][2]) ;

}

else if(j==3)

{

printf("第%d位同學工 數成績",i+1);

scanf("%f",&score[i][3]) ;

}

else if(j==4)

{

printf("第%d位同學計 概成績",i+1);

scanf("%f",&score[i][4]) ;

}

}

}

//計算總分平均

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

{

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

{

score[i][5]=score[i][5]+score[i][j];

}

score[i][6]=score[i][5]/5;

}

// 計算排名

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

cnt[i]=1;

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

for(j=i+1;j<5;j++)

{

if(score[i][5]<=score[j][5] )

cnt[i]++;

else if(score[i][5]>score[j][5])

cnt[j]++ ;

}

printf("\t

姓名\t國文\t英文\t電子學\t工數\t計概\t總分\t平均\t排名\t等第\n");

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

{

printf("第%d位同學%4s",i+1,name[i]);

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

{

printf("\t%.2f",score[i][j]);

}

printf("\t%d\n",cnt[i]);

printf("\n");

}

}

1 個解答

評分
  • dtsien
    Lv 6
    1 0 年前
    最佳解答

    加以下的部份

    ....

    printf("\t姓名\t國文\t英文\t電子學\t工數\t計概\t總分\t平均\t排名\t等第\n");

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

    {

    printf("第%d位同學%4s",i+1,name[i]);

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

    {

    printf("\t%.2f",score[i][j]);

    }

    printf("\t%d",cnt[i]);

    if (score[i][6] >= 90) printf("\t甲");

    else if (score[i][6] >= 80) printf("\t乙");

    else if (score[i][6] >= 70) printf("\t丙");

    else if (score[i][6] >= 60) printf("\t丁");

    else printf("\t戊");

    printf("\n\n");

    ....

    執行結果

    D:\temp>score

    請輸入第1位同學姓名:a

    第1位同學國 文成績10

    第1位同學英 文成績20

    第1位同學電子學成績30

    第1位同學工 數成績40

    第1位同學計 概成績50

    請輸入第2位同學姓名:b

    第2位同學國 文成績20

    第2位同學英 文成績30

    第2位同學電子學成績40

    第2位同學工 數成績50

    第2位同學計 概成績60

    請輸入第3位同學姓名:c

    第3位同學國 文成績100

    第3位同學英 文成績100

    第3位同學電子學成績100

    第3位同學工 數成績20

    第3位同學計 概成績30

    請輸入第4位同學姓名:d

    第4位同學國 文成績100

    第4位同學英 文成績100

    第4位同學電子學成績100

    第4位同學工 數成績90

    第4位同學計 概成績90

    請輸入第5位同學姓名:e

    第5位同學國 文成績80

    第5位同學英 文成績90

    第5位同學電子學成績70

    第5位同學工 數成績90

    第5位同學計 概成績60

    姓名 國文 英文 電子學 工數 計概 總分 平均 排名 等第

    第1位同學 a 10.00 20.00 30.00 40.00 50.00 150.00 30.00 5 戊

    第2位同學 b 20.00 30.00 40.00 50.00 60.00 200.00 40.00 4 戊

    第3位同學 c 100.00 100.00 100.00 20.00 30.00 350.00 70.0 3 丙

    第4位同學 d 100.00 100.00 100.00 90.00 90.00 480.00 96.00 1 甲

    第5位同學 e 80.00 90.00 70.00 90.00 60.00 390.00 78.00 2 丙

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