题目:从键盘输入某班学生某门课的成绩,已知每班人数最多不超过40人,具体人数由键盘输入,9(1)把所有成绩从高到低排序。(2)输入一个分数?X?,査找该分数对应下标。(与上几篇是同一题目下的不同小问题,程序也只有一点点改动)
问题(1):
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 40
int main(void)
{
int i,n,j,t,k;
int a[N];
printf("请输入学生人数n:");
scanf("%d",&n);
srand(time(0));
for(i=0;i<n;i++)
{
a[i]=rand()%101;
}
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
printf("学生成绩从高到低排序为:");
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[k]<a[j])
k=j//大的换到前面
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
问题(2):
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 40
int main(void)
{
int i,n,x;
int a[N];
printf("请输入学生人数n:");
scanf("%d",&n);
printf("输入分数x:");
scanf("%d",&x);
srand(time(0));
for(i=0;i<n;i++)
{
a[i]=rand()%101;
}
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
for(i=0;i<n;i++)
{
if(a[i]==x)
{
printf("分数%d对应的学生学号为%d\n",x,i);
break;
}
else
{
printf("没有分数%d对应的学生学号",x); break;
}
}
return 0;
}
|