[問題] C_結構陣列值比大小

看板C_and_CPP作者 (Hakunamatata)時間14年前 (2010/06/20 21:17), 編輯推噓6(605)
留言11則, 7人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> #define SIZE 2 int main() { int i; int m ,index; struct data { char name[10]; int math; }student[SIZE]; for(i=0;i<SIZE;i++) { printf("input name:"); gets(student[i].name); printf("input math grade:"); scanf("%d",&student[i].math); fflush(stdin); } printf("\n"); for(i=0;i<SIZE;i++) { printf("name:%s\n",student[i].name); printf("grade:%d\n",student[i].math); } m=student->math; for(i=0;i<SIZE;i++) { if((student+i)->math>m) { m=(student+i)->math; index=i; } } printf("成績最高者%s\n",(student+index)->name); system("pause"); return 0; } 遇到的問題: (題意請描述清楚) 我是預設2人,但程式在比較兩人分數時發生問題 情況一:A(先輸入)分數>B(後輸入)分數 程式跑不出預期結果 情況二:B(後輸入)分數>A(先輸入)分數 程式跑的出來預期結果 希望得到的正確結果: 能請板上大大幫我修改一下程式碼嗎 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ --------------------------------------------------- 先謝謝回答了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.199.96

06/20 21:37, , 1F
index沒有初始值
06/20 21:37, 1F

06/20 21:39, , 2F
感謝樓上大大的回答 程式成功了^^
06/20 21:39, 2F

06/20 21:56, , 3F
fflush(stdin); (抖... XD
06/20 21:56, 3F

06/20 21:59, , 4F
樓上那行是什麼意思?
06/20 21:59, 4F

06/20 22:15, , 5F
我意思是,原PO用了fflush(stdin) 不太好吧 XD
06/20 22:15, 5F

06/20 22:16, , 6F
應該是想把\n去掉
06/20 22:16, 6F

06/20 22:25, , 7F
我的意思是,fflush(stdin);是什麼意思
06/20 22:25, 7F

06/20 22:28, , 8F
fflush(stdin)可以把\n去掉...??
06/20 22:28, 8F

06/20 22:36, , 9F
可以
06/20 22:36, 9F

06/20 22:38, , 10F
所以跟據板上大大的建議 fflush(stdin) 要改什麼好??
06/20 22:38, 10F

06/20 22:49, , 11F
fgetc 就可以了
06/20 22:49, 11F
文章代碼(AID): #1C7XK3T6 (C_and_CPP)