STUDENT *create()
{
int i; int s;
STUDENT *h=NULL,*info; /* STUDENTæåç»æä½çæé*/
for(;;)
{
info=(STUDENT *)malloc(sizeof(STUDENT)); /*ç³è¯·ç©ºé´*/
if(!info) /*å¦ææéinfo为空*/
{
printf("\nout of memory"); /*è¾åºå
å溢åº*/
return NULL; /*è¿å空æé*/
}
inputs("enter no:",info->no,11); /*è¾å
¥å¦å·å¹¶æ ¡éª*/
if(info->no[0]=='@') break; /*å¦æå¦å·é¦å符为@åç»æè¾å
¥*/
inputs("enter name:",info->name,15); /*è¾å
¥å§åï¼å¹¶è¿è¡æ ¡éª*/
printf("please input %d score \n",N); /*æ示å¼å§è¾å
¥æ绩*/
s=0; /*计ç®æ¯ä¸ªå¦ççæ»åï¼åå¼ä¸º0*/
for(i=0;i<N;i++) /*Né¨è¯¾ç¨å¾ªç¯N次*/
{
do{
printf("score%d:",i+1); /*æ示è¾å
¥ç¬¬å é¨è¯¾ç¨*/
scanf("%d",&info->score[i]); /*è¾å
¥æ绩*/
if(info->score[i]>100||info->score[i]<0) /*ç¡®ä¿æ绩å¨0~100ä¹é´*/
printf("bad data,repeat input\n"); /*åºéæ示信æ¯*/
}while(info->score[i]>100||info->score[i]<0);
s=s+info->score[i]; /*ç´¯å åé¨è¯¾ç¨æ绩*/
}
info->sum=s; /*å°æ»åä¿å*/
info->average=(float)s/N; /*æ±åºå¹³åå¼*/
info->order=0; /*æªæåºåæ¤å¼ä¸º0*/
info->next=h; /*å°å¤´ç»ç¹å为æ°è¾å
¥ç»ç¹çå继ç»ç¹*/
h=info; /*æ°è¾å
¥ç»ç¹ä¸ºæ°ç头ç»ç¹*/
}
return(h); /*è¿å头æé*/
}
/*è¾å
¥å符串ï¼å¹¶è¿è¡é¿åº¦éªè¯*/
inputs(char *prompt, char *s, int count)
{
char p[255];
do{
printf(prompt); /*æ¾ç¤ºæ示信æ¯*/
scanf("%s",p); /*è¾å
¥å符串*/
if(strlen(p)>count)printf("\n too long! \n"); /*è¿è¡é¿åº¦æ ¡éªï¼è¶
è¿countå¼éè¾å
¥*/
}while(strlen(p)>count);
strcpy(s,p); /*å°è¾å
¥çå符串æ·è´å°å符串sä¸*/
}
温馨提示:答案为网友推荐,仅供参考