1、通过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩
#include <stdio.h>
int main(int argc, const char *argv[])
{
int arr[6]={0};
int i,j,temp;
temp=0;
for(i=0;i<6;i++)
{
scanf("%d",&arr[i]);
}
for(i=1;i<6;i++)
{
for(j=0;j<6-i;j++)
{
if(arr[j]<arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0;i<6;i++)
{
printf("%d \n",arr[i]);
}
return 0;
}
2、定义一个双精度浮点型数组,存放十个学生成绩,输入十名学生成绩,输出赋值后的所有元素。使用选择排序,完成降序排序后输出,并求出平均分,并统计出大于平均分学生的比重,输出结果。
#include <stdio.h>
int main(int argc, const char *argv[])
{
double arr[10]={0},a,b,k;
int i,j;
int temp=0,min=0;
i = 0, j = 0,a = 0;
printf("请输入十名学生的成绩:\n");
for(i=0;i<10;i++)
{
scanf("%lf",&arr[i]);
}
printf("成绩分别为:\n");
for(i=0;i<10;i++)
{
printf("%lf\n",arr[i]);
}
putchar(10);
for(i=1;i<10;i++)
{
min=i-1;
for(j=i-1;j<10;j++)
{
if(arr[j]<arr[min])
{
min=j;
}
}
if(min!=i-1)
{
temp=arr[min];
arr[min]=arr[i-1];
arr[i-1]=temp;
}
}
for(i=0;i<10;i++)
{
a+=arr[i];
printf("%lf\n",arr[i]);
}
b = a/10;
printf("平均分为:%lf\n",b);
for(i=0;i<10;i++)
{
if(b<arr[i])
{
k++;
}
}
printf("过平均分的学生有:%f%%\n",(k/10)*100);
return 0;
}
这篇博客展示了如何使用C语言实现冒泡排序和选择排序,分别对6名学生和10名学生的成绩进行升序和降序排列。冒泡排序中,通过两层循环遍历并交换元素来达到排序目的;选择排序则是每轮找到最小值(最大值)并将其放到正确位置。此外,还计算了10名学生的平均分,并统计了高于平均分的学生比例。
1891

被折叠的 条评论
为什么被折叠?



