帮忙编写个C代码

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:34:42
编程实现:随机产生20个学生的计算机课程的成绩(30~100之间的整数)

1) 显示生成的数组元素,每个元素用3个列宽输出,每行5个,共4行;

2) 记录并输出最高分,最低分以及其对应的数组元素下标;

3) 记录并显示20个同学的平均成绩;

4) 把成绩从高到低排序,可采用冒泡法或选择法或自己设计的更好的排序算法,请在你的程序中用注释标明所采用的方法。

5)输出排序后的数组元素;

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
int i = 0;
int j = 0;
int array[20] = {0};
/*生成随机数30-100*/
for(i = 0; i < 20; i ++)
{
array[i] = 30 + (int)(71.0 * (rand() / (RAND_MAX + 1.0)));
}

/*按3个列宽输出*/
for(i = 0; i < 20; i++)
{
printf("%3d", array[i]);
if((i+1)%5 == 0)
printf("\n");
}

int max_score = array[0];
int min_score = array[0];
int max_pos = 0;
int min_pos = 0;
int total = 0;
for(i = 0; i < 20; i++)
{
if(array[i] > max_score)
{
max_score = array[i];
max_pos = i;
}

if(array[i] < min_score)
{
min_score = array[i];
min_pos = i;
}
total += array[i];
}

float average = total/(float)20;
printf("最高分和位置: %d, %d\n"