1. (一维数组)从键盘输入一个班(全班最多不超过10人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:
(1)统计不及格人数;最高分,平均分
(2)统计成绩在全班平均分及平均分之上的学生人数;
(3)对学生成绩用冒泡法排序,输出。
#include<stdio.h>
#define size 10
void main()
{
float a[size],avg,sum=0,temp=0;
int num=0,j;
/*********将学生的成绩储存到数组a[size]中**********/
printf("请输入学生的成绩");
for(int i=0;i<size;i++)
{
scanf("%f",&a[i]);
if(a[i]<0)break;
sum=sum+a[i];
num++;
}
avg=sum/num;
printf("全班总分:%.2f\n全班平均分:%.2f\n",sum,avg);
for(i=0;i<num;i++)
{
if(a[i]>temp)temp=a[i];
}
printf("全班成绩最高分是:%.2f\n",temp);
/**********输出全班高于平均分的成绩**********/
printf("高于全班平均分的分数:");
for(i=0;i<num;i++)
if(a[i]>avg)
printf("%.2f\t",a[i]);
printf("\n");
/************冒泡排序全班成绩并输出**********/
printf("全班成绩如下(由高到低):");
for(i=1;i<=num;i++)
{
for(j=0;j<num;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=1;i<=num;i++)
{
printf("%.2f\t",a[i]);
}
printf("\n");
}
#include "stdio.h"
void main()
{
int i,b,j,c;
float a[10],max,average,m=0,sum=0,n=0,t;
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
if(a[i]<0)
break; //当输入小于0的数时,退出循环,当然若是输入了10个数还没小于0则也会退出
}
for(b=0;b<i;b++)
{
if(a[b]<60)
m++; //这是不及格人数
}
for(b=0;b<i;b++)
sum=sum+a[b];//这是总分数
average=sum/i;//这是平均分数
for(b=0;b<i;b++)
{
if(a[b]>=average)
n++;//这是大于等于平均分数的人数
}
for(j=1;j<i-1;j++) //此处开始则为冒泡法
for(c=0;c<i-j;c++)
if(a[c]>a[c+1])
{
t=a[c];
a[c]=a[c+1];
a[c+1]=t;
}
printf("不及格人数为%f人,最高分为%f,平均分为%f,大于等于平均分的人数为%f",m,a[i-1],average,n);
printf("成绩从低到高的顺序是");
for(c=0;c<i;c++)//这是用冒泡法排完序后从小到大输出分数
printf("%f ",a[c]);
printf("\n");
}