係統粉 > 電腦問答 > 其他問答

已解決關於結構體的問題

提問者:1254032646阿  |  瀏覽次  |  提問時間:2017-03-27  |  回答數量:9

關於結構體的問題struct stud {char num[5],name[10]; int s[4]; double ave; }; void readrec(struct stud *ps) {int i,j; for(i=0;i<N;i++) {printf("輸入編號");gets(ps.num);   printf("輸入姓名");gets(ps.name);   for(j=0;j<4;j++) {scanf("%d",&ps.s[j];ps.ave+=ps.s[j]/4;}   getchar(); } } 最後的getchar()的解釋是讀走輸入緩衝區內的回車符,但我不理解是什麼意思,為什麼要有這句語句?

已有9條答案
藍橋遺夢魔力鳥

藍橋遺夢魔力鳥

回答數:196  |  被采納數:89

去掉試試就知道了
2017-03-28 00:51:23
讚 19
大白菜地裏黃丶

大白菜地裏黃丶

回答數:134  |  被采納數:8

判斷輸入一個字符串的結束位置吧,以Enter或是“\0”結束
2017-03-27 23:27:25
讚 13
吹柳絮

吹柳絮

回答數:169  |  被采納數:99


去掉之後 輸入編號和輸入姓名就在一行了為什麼呢?
2017-03-28 07:27:34
讚 16
吮色兒

吮色兒

回答數:24  |  被采納數:137


顯示輸入編號後有沒有等待用戶輸入還是直接打出“輸入姓名”
2017-03-28 02:25:57
讚 2
傻妮丶

傻妮丶

回答數:141  |  被采納數:17


去掉後就變這樣了求解~~~~(>_<)~~~~

(1)

2017-03-28 11:25:20
讚 14
我叫梅人耀

我叫梅人耀

回答數:8  |  被采納數:7


#include<stdio.h>
#define N 3
struct stud
{char num[5],name[10];
int s[4];
double ave;
};
void readrec(struct stud *ps)
{int i,j;
for(i=0;i<N;i++)
{printf("輸入編號");gets(ps.num);
printf("輸入姓名");gets(ps.name);
for(j=0;j<4;j++) {scanf("%d",&ps.s[j]);ps.ave+=ps.s[j]/4;}
getchar();
}
}
void writerec(struct stud *ps)
{int i,j;
for(i=0;i<N;i++)
{puts(ps.num);puts(ps.name);
for(j=0;j<4;j++) printf("%d ",ps.s[j]);
printf("ave=%d\n",ps.ave);
}
}
void main()
{struct stud a[N];
readrec(a);
writerec(a);
}

以上是全部程序,ave的值輸出不對,找不出問題,求解~~~~(>_<)~~~~

(2)

2017-03-28 01:13:55
讚 0
流浪神使

流浪神使

回答數:138  |  被采納數:18

(3)求大神指點
2017-03-28 12:37:49
讚 13
13or1n9

13or1n9

回答數:1  |  被采納數:136



ps[i ].ave沒有初始化
還有 printf("ave=%f\n",ps.ave);
2017-03-28 18:54:13
讚 0
王位載手

王位載手

回答數:96  |  被采納數:44


額 這樣的 謝謝啦~還有個問題 還是不明白那個getchar()的作用
2017-03-28 00:59:01
讚 9
相關問答
最新其他問答
解決方法