假设m位学生玩游戏,游戏规则如下:学生按学号顺序(升序)从2开始依次报数,报到质数得2分,其余数字得1分,求n轮后各学生的得分。要求:m、n、学号均由键盘输入。

#include<stdio.h>
#define N 100
struct student{
long int number;
int score;
};
void main()
{ struct student stu[N];
int i,m,j,t,n;
int exchange=0;
printf("人数:");
scanf("%d",&m);
printf("轮数:");
scanf("%d",&n);
for(i=0;i<m;i++)
{
printf("学号:");
scanf("%ld",&stu[i].number);
stu[i].score=0;

}
for(i=0;i<m-1;i++)
{
exchange=0;
for(j=0;j<m-1-i;j++)
{
if(stu[i].number>stu[i+1].number)
{
t=stu[i].number;
stu[i].number=stu[i+1].number;
stu[i+1].number=t;
exchange=1;
}
}
if(!exchange)
break;
}
for(i=0;i<m;i++)
{
printf("%ld",stu[i].number);
printf("\n");
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if((j+2)%2==0)
stu[j].score++;
else
stu[j].score+=2;
}
}
for(i=0;i<m;i++)
printf("%d\n",stu[i].score);

}