随机产生30个学生的C语言成绩(成绩范围在[0,100]之间),统计并输出不及格(<60分)的人数,并按照从大到小的顺序将数组所有元素进行排序,分别显示排序前和排序后的结果,每行输出10个。
回答如下,记得采纳!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 30
int main() {
int scores[N];
int i, j, temp;
int fail_count = 0;
// 随机生成成绩
srand((unsigned)time(NULL));
for (i = 0; i < N; i++) {
scores[i] = rand() % 101;
}
// 统计不及格的人数
for (i = 0; i < N; i++) {
if (scores[i] < 60) {
fail_count++;
}
}
printf("不及格的人数:%d\n", fail_count);
// 排序并输出结果
printf("排序前的结果:\n");
for (i = 0; i < N; i++) {
printf("%d ", scores[i]);
if ((i+1) % 10 == 0) printf("\n");
}
printf("\n");
for (i = 0; i < N-1; i++) {
for (j = 0; j < N-i-1; j++) {
if (scores[j] < scores[j+1]) {
temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
printf("排序后的结果:\n");
for (i = 0; i < N; i++) {
printf("%d ", scores[i]);
if ((i+1) % 10 == 0) printf("\n");
}
printf("\n");
return 0;
}
#include "stdio.h"
#include stdlib.h
#include "time.h"
struct A{
int S_N,score;
};
int main(int argc,char *argv[]){
A stu[10],t;
char i,j,k;
printf("随机输入情况...\n");
srand((unsigned)time(NULL));
for(i=0;i6;i++){
stu[i].S_N=rand();
for(j=0;ji;j++)
if(stu[i].S_N==stu[j].S_N){
i--;
break;
}
stu[i].score=rand()%51+50;
printf("%05d %4d ",stu[i].S_N,stu[i].score);
}
printf("\n\n按学号由小到大排序...\n");
for(i=0;i6;i++){
for(k=i,j=k+1;j6;j++)
if(stu[k].S_Nstu[j].S_N)
k=j;
if(i!=k)
t=stu[k],stu[k]=stu[i],stu[i]=t;
printf("%05d %4d ",stu[i].S_N,stu[i].score);
}
printf("\n\n按成绩由大到小排序...\n");
for(i=0;i6;i++){
for(k=i,j=k+1;j6;j++)
if(stu[k].scorestu[j].score)
k=j;
if(i!=k)
t=stu[k],stu[k]=stu[i],stu[i]=t;
printf("%05d %4d ",stu[i].S_N,stu[i].score);
}
puts("\n");
return 0;
}
已测试可运行
#include <stdio.h>
#include <time.h>
#include <random>
int main() {
int scores[30];
int count = 0;
srand(time(0));
for (int i = 0; i < 30; i++) {
scores[i] = rand() % (100+1);
if (scores[i] < 60) {
count++;
}
}
printf("不及格人数为:%d\n", count);
for (int i = 0; i < 30 - 1; i++) {
for (int j = i + 1; j < 30; j++) {
if (scores[i] < scores[j]) {
int temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
printf("排序前:\n");
for (int i = 0; i < 30; i++) {
printf("%d ", scores[i]);
if ((i + 1) % 10 == 0) {
printf("\n");
}
}
printf("\n");
printf("排序后:\n");
for (int i = 0; i < 30; i++) {
printf("%d ", scores[i]);
if ((i + 1) % 10 == 0) {
printf("\n");
}
}
printf("\n");
return 0;
}