Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

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

如何把這個寫成C++的程式碼 急需再2小時

1、將五位同學的學號、姓名、國文、英文、數學成績儲存於 test.txt檔案內

2、開啟檔案。

3、計算每位同學的總分及平均。

4、將結果「學號、姓名、國文、英文、數學、總分、平均」儲存於 result.txt檔案內,並顯示在螢幕上。

5、找出第一名的同學,將其學號及總分顯示在螢幕上。

2 個解答

評分
  • 2 0 年前
    最佳解答

    #include<stdio.h>

    typedef struct student_t{

    char name[100];

    int num;

    int ch;

    int ma;

    int en;

    }student_p;

    main(){

    FILE *fp = NULL;

    student_p student[5];

    int i=0;

    char tmp[1024] = {};

    fp = fopen("test.txt","r");

    if(fp!=NULL)

    while( fscanf(fp,"%i%s%i%i%i",&student[i].num,student[i].name,&student[i].ch,&student[i].ma,&student[i].en) != -1)

    i++;

    fclose(fp);

    fp = fopen("result.txt","w+");

    if(fp!=NULL){

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

    sprintf(tmp,"%i%s%s%s%i%s%i%s%i%s%i%s%i%s",student[i].num," ",student[i].name," ",\

    student[i].ch," ",student[i].ma," ",student[i].en,\

    " ",student[i].ch+student[i].ma+student[i].en," ",(student[i].ch+student[i].ma+student[i].en)/3,"\n");

    fputs(tmp,fp);

    memset(tmp,0,1024);

    }

    fclose(fp);

    }

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

    printf("%i %s %i %i %i\n",student[i].num,student[i].name,student[i].ch,student[i].ma,student[i].en);

    }

    test.txt:

    123 cosmo 55 66 77

    234 dcd1204 66 7 88

    345 tretre 100 99 98

    893 test 98 65 12

    234 klo 26 03 76

    2006-06-20 11:25:30 補充:

    換掉下面的for迴圈 我忘記補印出最高的 請參考上面的程式 (你的信向不接受我寄信 所以抱歉了)

    2006-06-20 11:40:50 補充:

    樓下有新版的

    去看看吧

    參考資料: 自己
  • 2 0 年前

    該不會在考試期間 把題目po出來吧...

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