c语言输入10个学生的考试成绩,输出及格学生的平均成绩。
时间: 2023-10-25 15:10:09 浏览: 204
好的,根据您的要求,我来为你解答这个问题。您可以使用以下的C语言代码实现:
```
#include<stdio.h>
int main(){
int i,n;
float sum=0, avg;
printf("请输入学生人数: ");
scanf("%d",&n);
float score[n];
for(i=0;i<n;i++){
printf("\n请输入第%d个学生的成绩: ",i+1);
scanf("%f",&score[i]);
if(score[i]>=60){
sum=sum+score[i];
}
}
avg = sum/n;
printf("\n及格学生的平均成绩为: %.2f", avg);
return 0;
}
```
这个程序可以先询问用户要输入的学生人数,然后通过循环接收每个学生的成绩,同时判断是否及格,并将及格学生的成绩加起来。最后再以及格学生的成绩总和除以总人数求得及格学生的平均成绩。
希望这个回答能够解决您的问题。
相关问题
用c语言编程:输入10个学生的考试成绩,输出及格学生的平均成绩。
好的,我来解答你的问题。以下是利用 C 语言编写的代码,可以实现输入 10 个学生的考试成绩,并输出及格学生的平均成绩。
```
#include <stdio.h>
int main() {
float scores[10];
float sum = 0;
int count = 0;
// 依次输入 10 个学生的考试成绩
for (int i = 0; i < 10; i++) {
printf("请输入第 %d 个学生的成绩:", i + 1);
scanf("%f", &scores[i]);
if (scores[i] >= 60) { // 判断是否及格
sum += scores[i];
count++;
}
}
// 输出及格学生的平均成绩
if (count == 0) {
printf("没有及格的学生!");
} else {
printf("及格学生的平均成绩为:%.2f", sum / count);
}
return 0;
}
```
以上代码中,我们定义了一个长度为 10 的 float 数组 `scores`,用于存放 10 名学生的考试成绩。然后我们通过一个 for 循环,依次读取每一位学生的成绩,并进行判断。如果成绩大于等于 60 分,则累加到 `sum` 变量中,同时将 `count` 变量加 1,用于记录及格学生的人数。
最后,通过判断 `count` 变量是否为 0,若为 0 则说明没有及格的学生,否则输出及格学生的平均成绩,即 `sum / count`。
希望我的回答能够帮到你!
某班有10个学生,进行了“数学”、“语文”、“英语”、“C语言”等科目的考试,编写程序: (1)将考试成绩输入一个二维数组; (2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分; (3)求每个学生的平均成绩、总分、不及格门数; (4)按学生平均成绩的高低排序并输出。
以下是一个可能的解决方案,使用 C++ 语言实现:
```c++
#include <iostream>
#include <algorithm> // 用于排序函数
using namespace std;
const int NUM_STUDENTS = 10;
const int NUM_SUBJECTS = 4;
int main() {
int scores[NUM_STUDENTS][NUM_SUBJECTS]; // 存储每个学生的每门科目成绩
// 输入每个学生的成绩
for (int i = 0; i < NUM_STUDENTS; i++) {
cout << "请输入第" << i+1 << "个学生的成绩(数学 语文 英语 C语言):";
for (int j = 0; j < NUM_SUBJECTS; j++) {
cin >> scores[i][j];
}
}
// 计算每门课的平均成绩、不及格人数、最高分和最低分
double avg_scores[NUM_SUBJECTS] = {0}; // 平均成绩
int num_failed[NUM_SUBJECTS] = {0}; // 不及格人数
int max_scores[NUM_SUBJECTS] = {0}; // 最高分
int min_scores[NUM_SUBJECTS] = {100}; // 最低分(初始化为100分)
for (int j = 0; j < NUM_SUBJECTS; j++) {
for (int i = 0; i < NUM_STUDENTS; i++) {
avg_scores[j] += scores[i][j];
if (scores[i][j] < 60) {
num_failed[j]++;
}
max_scores[j] = max(max_scores[j], scores[i][j]);
min_scores[j] = min(min_scores[j], scores[i][j]);
}
avg_scores[j] /= NUM_STUDENTS;
}
// 输出每门课的平均成绩、不及格人数、最高分和最低分
cout << "每门课的平均成绩、不及格人数、最高分和最低分如下:" << endl;
cout << "数学:平均成绩:" << avg_scores[0] << ",不及格人数:" << num_failed[0] << ",最高分:" << max_scores[0] << ",最低分:" << min_scores[0] << endl;
cout << "语文:平均成绩:" << avg_scores[1] << ",不及格人数:" << num_failed[1] << ",最高分:" << max_scores[1] << ",最低分:" << min_scores[1] << endl;
cout << "英语:平均成绩:" << avg_scores[2] << ",不及格人数:" << num_failed[2] << ",最高分:" << max_scores[2] << ",最低分:" << min_scores[2] << endl;
cout << "C语言:平均成绩:" << avg_scores[3] << ",不及格人数:" << num_failed[3] << ",最高分:" << max_scores[3] << ",最低分:" << min_scores[3] << endl;
// 计算每个学生的平均成绩、总分、不及格门数
double avg_scores_per_student[NUM_STUDENTS] = {0}; // 每个学生的平均成绩
int total_scores[NUM_STUDENTS] = {0}; // 每个学生的总分
int num_failed_per_student[NUM_STUDENTS] = {0}; // 每个学生的不及格门数
for (int i = 0; i < NUM_STUDENTS; i++) {
for (int j = 0; j < NUM_SUBJECTS; j++) {
total_scores[i] += scores[i][j];
if (scores[i][j] < 60) {
num_failed_per_student[i]++;
}
}
avg_scores_per_student[i] = total_scores[i] / double(NUM_SUBJECTS);
}
// 按学生平均成绩排序并输出
int idx[NUM_STUDENTS];
for (int i = 0; i < NUM_STUDENTS; i++) {
idx[i] = i;
}
sort(idx, idx+NUM_STUDENTS, [&](int a, int b) {return avg_scores_per_student[a] > avg_scores_per_student[b];});
cout << "按学生平均成绩排序如下:" << endl;
for (int i = 0; i < NUM_STUDENTS; i++) {
int j = idx[i];
cout << "第" << j+1 << "个学生:";
cout << "平均成绩:" << avg_scores_per_student[j] << ",总分:" << total_scores[j] << ",不及格门数:" << num_failed_per_student[j] << endl;
}
return 0;
}
```
这个程序的主要思路是,先输入每个学生的成绩,然后对每门课计算平均成绩、不及格人数、最高分和最低分,再对每个学生计算平均成绩、总分和不及格门数,最后按学生平均成绩排序并输出。在计算平均成绩等统计数据时,使用了数组和循环结构。在排序时,使用了 `sort` 函数和 Lambda 表达式。
阅读全文