程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程c語言-編程小問題,關於結構體

編程c語言-編程小問題,關於結構體

編輯:編程綜合問答
編程小問題,關於結構體

用結構體類型數組進行程序設計。有五個學生,每個學生的信息包括:學號,姓名,三門課的成績和平均成績。從鍵盤輸入每個學生的學號,姓名和三門課的成績,計算每個學生的平均成績,計算並輸出總平均成績,求出最高分學生,並輸出其信息(姓名和平均成績)。
實驗步驟
① 用一個函數輸入五個學生的數據信息;
② 用一個函數求每個學生的平均成績;
③ 用一個函數找出最高分的學生;
④ 主函數中調用相關函數,並輸出總平均成績和最高分學生的信息。

這是我寫的代碼
#include
#define N 5
struct student
{
int num;
char name[20];
int score[3];
}stu[5];
float ave[3];
void input();
void average();
int max();
int main()
{
input();
average();
int t;
t=max();
}
void input()
{
int i,j;
for(i=0;i<5;i++)
{

scanf("%d%c",&stu[i].num,&stu[i].name);
for(j=0;j<3;j++)
{
scanf("%d",&stu[i].score[j]);
}
}
}
void average()
{
int i,j;
for(i=0;i<5;i++)
{
ave[i]=0;
for(j=0;j<3;j++)
{
ave[i]+=stu[i].score[j];
}
ave[i]/=3;
}
}
int max()
{
int i,maxi=0;
float max=ave[0];
for(i=1;i<5;i++)
{
if(max<ave[i])
{
max=ave[i];
maxi=i+1;
}
}
return maxi;
}
為什麼無法運行啊?求指導

最佳回答:


呃,你這個代碼問題實在比較多....
我就撿最主要的幾個說說吧。
這應當是學校的練習題吧。

  1. scanf獲取學號(我猜的你那個num的含義)和姓名的時候,格式符"%d%c"是錯的,要有空格,而且不能用%c來接收字符串,應當是"d% %s"
  2. num未曾使用,不如不要求輸入
  3. 開始輸入之前最好給點提示吧,要不別人怎麼知道如何輸入?
  4. 最終的結果應當輸出,否則沒有意義 至於輸入回退、撤銷等等,我想,在練習題中你沒有必要實現了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved