一個學校的題目,學校判題系統報錯:Runtime Error:Segmentation fault,但是沒有發現大佬說的陣列開得太小或者指標例外的問題。
——————————————————————以下是題目———————————————————————————
題目描述
輸入多個學生的學號、姓名和成績,然后輸出成績最高的哪個學生的姓名和學號
輸入描述
輸入包含多組樣例。
每組樣例包含一個整數N,代表有N個學生。
接下來N行依次輸入每個學生的學號、姓名和成績。
若N = 0,則表示輸入結束,這個樣例不需要被處理。
輸出描述
對于每組用例,你應當輸出這組樣例N個學生中成績最高的學生的姓名和學號,每個輸出占一行。
提示
樣例輸入復制樣例輸入資料
?2
1000 mingming 89
1001 lingling 90
3
1090 huanghuang 88
1076 zhouzhou 76
1003 xiaohong 87
0
樣例輸出
1001 lingling
1090 huanghuang
允許最長運行時間
3000ms
允許使用最大記憶體
1025MB
———————————————————以上是題目——————————————————————————
————————————————————我的代碼:——————————————————————————
#include<stdio.h>
struct student
{
int number;
char name[100];
int score;
//int len;
};
void mystructioncontempt(struct student x[],int len)
{
int i=0;
//printf("len=%d\n",len);
struct student max=x[0];
for(;;)
{//printf("記號2\n");
if(max.score<=x[i].score)max=x[i];
//printf("%d %s",max.number,max.name);
i++;
//printf("i= %d len=%d\n",i,len);
if(i==len)
{
printf("%d %s\n",max.number,max.name);
break;
}
}
}
int main()
{
struct student s[100][100];
int len[100];
int i,j,n;
int flag=0;
for(i=0;;i++)
{
scanf("%d",&n);
if(n==0)break;
else
{//printf("記號3\n");
len[i]=n;
// printf("len[%d]=%d\n",i,n);
flag++;
for(j=0;j<n;j++)
{
// s[i][j].len=n;
scanf("%d %s %d",&s[i][j].number,s[i][j].name,&s[i][j].score);
//printf("記號2\n");
}
}
}
i=0;
for(;;)
{
mystructioncontempt(s[i],len[i]);
i++;
if(i==flag)break;
}
}
————————————————————————————————————————————————————————
測驗軟體 devc++5.11 編譯通過功能沒發現問題,實在不知道問題在哪里求助大佬
uj5u.com熱心網友回復:
來人吶
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243433.html
標籤:C++ 語言
上一篇:求助
下一篇:C++學習筆記1
