统计成绩
[问题描述]给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:
(1) 按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;
(2) 按名次列出每个学生的姓名与分数。
[基本要求]学生的考试成绩表必须通过键盘输入数据而建立,同时要对输出进行格式控制。
#include <stdio.h>
#define n 10
typedef struct
{char name[8];
int score;
}stu;
stu *R;
main()
{int num,i,j,max,temp;
stu *R;
printf("\n please input score:\n");
for(i=0;i<n;i++)
{printf("name:\n");
scanf("%s",&R[i].name);
scanf("%4d",&R[i].score);
}
num=num-1;
for(i=0;i<n;i++)
{max=i;
for(j=i+1;j<n;j++)
if(R[j].score>R[max].score)
max=j;
if(max!=i)
{temp=R[max].score;
R[max].score=R[i].score;
R[i].score=temp;
}
if((i>0)&&(R[i].score<R[i-1].score))
num=num+1;
printf("%4d%s%4d",num,R[i].name,R[i].score);
}
return 0;
}
这是我做的
他一直提示我输入姓名和成绩