如最後壹個定義的函數中有兩個if的條件沒括號,這會導致編譯出錯。
2.Dispdata的錯誤,printf("沒有該學號,請重新輸入");的後面應該加壹句p=&stu[0];
不然再次查找會出錯,最好的方法是把printf("沒有該學號,請重新輸入");後面的w=0;這句去掉,
這樣還能避免無限輸入要求(沒有學號時會造成死循環)。
3.Adddata的錯誤,沒有對學號或姓名相同的輸入進行判斷,會導致壹些錯誤的輸入被認可且
無法修改
4.不知道程序有沒有按層次縮進,沒的話建議縮壹下,明了些,就是這樣:
void Dispdata(struct student *p) //按學號查詢成績
{
int w=0,xuehao;
do
{
printf("請輸入所要查詢的學生的學號:");
scanf("%d",&xuehao);
if(xuehao==(*p).num)
{
printf("\n該學生數據:\n姓名:%s 學號:%d 數學:%d 英語:%d 計算機:%d 平均分:%d\n",(*p).name,(*p).num,(*p).mathamatic,(*p).english,(*p).computer,(*p).average);
break;
}
else
{
p=p+1;
w=w+1;
if(w=100)
{
printf("沒有該學號,請重新輸入");
}
}
}while(w!=100);
}