1、通过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a[6]={0};
int i,j,temp;
printf("请输入学生成绩: ");
for (i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
/* for(i=0;i<6;i++) //冒泡排序
{
for(j=0;j<5-i;j++)
{
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后的成绩为: ");
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
putchar(10);
return 0;
} */
int min; //选择排序
for(i=0;i<5;i++)
{
min=i;
for(j=i+1;j<6;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
printf("排序后的成绩为: ");
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
putchar(10);
return 0;
}
2、定义一个双精度浮点型数组,存放十个学生成绩,输入十名学生成绩,输出赋值后的所有元素。使用选择排序,完成降序排序后输出,并求出平均分,并统计出大于平均分学生的比重,输出结果。
#include <stdio.h>
int main(int argc, const char *argv[])
{
double a[10]={0};
int i,j,max,num;
double k,temp;
k=0;
for (i=0;i<10;i++)
{
scanf("%lf",&a[i]);
}
printf("输入学生的成绩为:");
for(i=0;i<10;i++)
{
printf("%.2f ",a[i]);
}
putchar(10);
/* for(i=0;i<9;i++)
{
max=i;
for(j=i+1;j<10;j++)
{
if(a[max]<a[j] )
{
max=j;
}
}
temp=a[max];
a[max]=a[i];
a[i]=temp;
}
printf("降序后的学生成绩为: ");
for(i=0;i<10;i++)
{
k=k+a[i];
printf("%.2f ",a[i]);
} */
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("降序后的学生成绩为: ");
for(i=0;i<10;i++)
{
k=k+a[i];
printf("%.2f ",a[i]);
}
putchar(10);
printf("学生的平均分为:%.2f",k/10);
putchar(10);
for(i=0;i<10;i++)
{
if(a[i]>(k/10))
{
num++;
}
}
printf("成绩超过平均数的占比%.2f%\n",100*num/10.0);
return 0;
}