解答私信@qq_51485340
QQ 解答 私信
2023-09-27 14:19:40 时间
某班计算机考试,有最多不超过30人参加考试,考试后要求:
1) 输入每个学生的学号和成绩;
2)打印出成绩在90分以上和成绩不及格的学生的学号和成绩
【提示】:用一维数组score存放每个学生课程的成绩,用一维数组num存放每个学生的学号。两个数组序号要对应。
代码块:
#include <stdio.h>
#include <stdlib.h>
#define STUNUM 10 //学生总人数,可以通过宏定义调整总人数
void input(int *num, double *score, int StuNum);
void Above90Output(int *num, double *score, int StuNum);
void FailOutput(int *num, double *score, int StuNum);
void input(int *num , double *score, int StuNum){
int i;
for(i = 0; i < StuNum; i++){
printf("Enter No.%d Student number: ", i+1);
scanf_s("%d", &num[i]);
while(num[i] <= 0){
printf("Error!Retry!\nEnter No.%d Student number: ", i+1);
scanf_s("%d", &num[i]);
}
printf("Enter No.%d Student score: ", i+1);
scanf_s("%lf", &score[i]);
while(score[i] < 0){
printf("Error!Retry!\nEnter No.%d Student score: ", i+1);
scanf_s("%lf", &score[i]);
}
}
}//input
void Above90Output(int *num, double *score, int StuNum){
int i;
printf("Student information above 90: \n");
for(i = 0; i < StuNum; i++)
if(score[i] > 90.0)
printf(" Num: %4d Score: %4.1lf\n", num[i], score[i]);
}//Above90Output
void FailOutput(int *num, double *score, int StuNum){
int i;
printf("Failed student information: \n");
for(i = 0; i < StuNum; i++)
if(score[i] < 60.0)
printf(" Num: %4d Score: %4.1lf\n", num[i], score[i]);
}//FailOutput
int main()
{
int *num = (int*)malloc(STUNUM*sizeof(int));
double *score = (double*)malloc(STUNUM*sizeof(double));
input(num, score, STUNUM);
Above90Output(num, score, STUNUM);
FailOutput(num, score, STUNUM);
free(num);
free(score);
system("pause");
return 0;
}