利用冒泡排序的方法对从键盘输入的 10 个学生的成绩进行排序,并计算平均分和不及格人数
望采纳
#include <stdio.h>
int main(void)
{
int array[]={54,66,80,72,80,65,89,24, 56, 57};
int n=sizeof(array)/sizeof(array[0]);
int count = 0;
float avg ;
int i = 0;
int j = 0;
int temp;
for ( i = 0; i < n-1; i++)
{
for ( j = 0; j < n-1-i; j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for ( i = 0; i < n; i++)
{
printf("%d\n",array[i]);
if (array[i] <= 60)
count ++;
avg = avg + array[i];
}
printf("不及格%d人,平均分为%f",count,avg /10);
return 0;
}
static void Main(string[] args)
{
string s = Console.ReadLine();//多个数字之间用半角逗号隔开
string[] sarr = s.Split(new char[] { ',' });//分割字符串,获得字符串数组
int[] arr = new int[sarr.Length];//定义新的整型数组,放原始排列顺序
int[] newarr = new int[sarr.Length];//定义新的整型数组,用于冒泡排序
for (int sa = 0; sa < sarr.Length; sa++) //给新定义的2个数组赋值
{
arr[sa] = Convert.ToInt32(sarr[sa]);
newarr[sa] = Convert.ToInt32(sarr[sa]);
}
int k = 0;//中间变量,用于冒泡排序
for (int i = 0; i < newarr.Length; i++)//冒泡排序
{
for (int j = i + 1; j < newarr.Length; j++)
{
if (newarr[i] < newarr[j])
{
k = newarr[i];
newarr[i] = newarr[j];
newarr[j] = k;
}
}
}
Console.Write("原始排列:");
foreach (int a in arr)
{
Console.Write(a + ",");
}
Console.WriteLine("");
Console.Write("新的排列:");
foreach (int na in newarr)
{
Console.Write(na + ",");
}
Console.WriteLine("");
Console.ReadKey();
}