用c语言编写:输入100个学生的成绩,统计并输出该门课程平均分以及不及格人数
时间: 2024-02-09 13:11:20 浏览: 115
好的,以下是用 C 语言实现统计学生成绩的代码:
```c
#include <stdio.h>
int main() {
float grades[100]; // 定义一个数组用于存储学生的成绩
int fail_num = 0; // 记录不及格人数的变量
// 输入100个学生成绩
for (int i = 0; i < 100; i++) {
printf("请输入第%d个学生的成绩:", i+1);
scanf("%f", &grades[i]);
if (grades[i] < 60) {
fail_num++;
}
}
// 计算平均分
float sum = 0;
for (int i = 0; i < 100; i++) {
sum += grades[i];
}
float avg_grade = sum / 100;
// 输出结果
printf("该门课程的平均分是:%.2f\n", avg_grade);
printf("不及格人数为:%d\n", fail_num);
return 0;
}
```
上面的代码实现了一个简单的输入学生成绩并统计平均分和不及格人数的功能。你可以将其复制到你的编译器中运行,输入100个学生成绩,程序会自动输出平均分和不及格人数。
相关问题
用C语言写出完整代码(11)编写函数,实现一个多功能计算器(功能自定义)。 五 (4)编写程序,输入50个学生的数学成绩并保存在数组中,计算并输出该门成绩的及格人数、平均分、最高分及其下标。. (5)编写程序,输入一个字符串,分别统计并输出其中的数字字符、空格字符和其他字符出现的次数。 (8)编写程序,输入一个字符串,统计并输出其中定冠词the的个数。 (9)设计一个具有进制转换功能的计算器,可将输入的一一个十进制、二进制、八进制或十六进制的整数转换为其他3种进制的整数后输出。 七 (6)一个班的学生的数据包含学号、姓名和4门课程的成绩。输入数据,计算学生的平均成绩,输出所有学生的学号、姓名、各门课程的成绩和平均成绩,输出平均成绩最高的学生数据。要求使用结构体实现。
对于问题五,以下是一个示例代码,实现了一个简单的多功能计算器:
```c
#include <stdio.h>
int add(int x, int y) {
return x + y;
}
int subtract(int x, int y) {
return x - y;
}
int multiply(int x, int y) {
return x * y;
}
int divide(int x, int y) {
if (y == 0) {
printf("Error: divide by zero\n");
return 0;
}
return x / y;
}
int main() {
int x, y;
char op;
printf("Please enter an expression (e.g. 1 + 2): ");
scanf("%d %c %d", &x, &op, &y);
switch (op) {
case '+':
printf("%d\n", add(x, y));
break;
case '-':
printf("%d\n", subtract(x, y));
break;
case '*':
printf("%d\n", multiply(x, y));
break;
case '/':
printf("%d\n", divide(x, y));
break;
default:
printf("Error: invalid operator\n");
}
return 0;
}
```
对于问题四,以下是一个示例代码,实现了输入50个学生的数学成绩并保存在数组中,计算并输出及格人数、平均分、最高分及其下标:
```c
#include <stdio.h>
#define N 50
int main() {
int scores[N];
int i, sum = 0, count = 0, max = 0, max_idx = 0;
for (i = 0; i < N; i++) {
printf("Please enter the score of student %d: ", i + 1);
scanf("%d", &scores[i]);
if (scores[i] >= 60) {
count++;
}
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
max_idx = i;
}
}
printf("Number of students passed: %d\n", count);
printf("Average score: %.2f\n", (double) sum / N);
printf("Highest score: %d, index: %d\n", max, max_idx);
return 0;
}
```
对于问题五,以下是一个示例代码,实现了输入一个字符串,分别统计并输出其中的数字字符、空格字符和其他字符出现的次数:
```c
#include <stdio.h>
int main() {
char str[100];
int i, digit_cnt = 0, space_cnt = 0, other_cnt = 0;
printf("Please enter a string: ");
fgets(str, 100, stdin); // 使用 fgets 读取输入的字符串
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') {
digit_cnt++;
} else if (str[i] == ' ') {
space_cnt++;
} else {
other_cnt++;
}
}
printf("Number of digits: %d\n", digit_cnt);
printf("Number of spaces: %d\n", space_cnt);
printf("Number of other characters: %d\n", other_cnt);
return 0;
}
```
对于问题八,以下是一个示例代码,实现了输入一个字符串,统计并输出其中定冠词 the 的个数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, count = 0;
printf("Please enter a string: ");
fgets(str, 100, stdin); // 使用 fgets 读取输入的字符串
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == 't' && str[i+1] == 'h' && str[i+2] == 'e' && (str[i+3] == ' ' || str[i+3] == '\0')) {
count++;
}
}
printf("Number of occurrences of 'the': %d\n", count);
return 0;
}
```
对于问题九,以下是一个示例代码,实现了一个具有进制转换功能的计算器:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int to_decimal(char *num, int base) {
int i, len = strlen(num);
int result = 0, power = 1;
for (i = len - 1; i >= 0; i--) {
int digit;
if (num[i] >= '0' && num[i] <= '9') {
digit = num[i] - '0';
} else if (num[i] >= 'A' && num[i] <= 'F') {
digit = num[i] - 'A' + 10;
} else if (num[i] >= 'a' && num[i] <= 'f') {
digit = num[i] - 'a' + 10;
} else {
printf("Error: invalid input\n");
return 0;
}
if (digit >= base) {
printf("Error: invalid input\n");
return 0;
}
result += digit * power;
power *= base;
}
return result;
}
void to_other_bases(int num, int base) {
int digits[32], i, len = 0;
while (num > 0) {
digits[len++] = num % base;
num /= base;
}
for (i = len - 1; i >= 0; i--) {
if (digits[i] < 10) {
printf("%d", digits[i]);
} else {
printf("%c", digits[i] - 10 + 'A');
}
}
printf("\n");
}
int main() {
char num[100];
int from_base, to_base;
printf("Please enter a number: ");
scanf("%s", num);
printf("Please enter the base of the number: ");
scanf("%d", &from_base);
printf("Please enter the base to convert to: ");
scanf("%d", &to_base);
int decimal = to_decimal(num, from_base);
to_other_bases(decimal, to_base);
return 0;
}
```
对于问题六,以下是一个示例代码,使用结构体实现了一个班的学生的数据包含学号、姓名和4门课程的成绩。输入数据,计算学生的平均成绩,输出所有学生的学号、姓名、各门课程的成绩和平均成绩,输出平均成绩最高的学生数据:
```c
#include <stdio.h>
#include <string.h>
#define N 50
struct student {
char id[10];
char name[20];
int scores[4];
double avg_score;
};
int main() {
struct student students[N];
int n, i, j;
printf("Please enter the number of students: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Please enter the ID of student %d: ", i + 1);
scanf("%s", students[i].id);
printf("Please enter the name of student %d: ", i + 1);
scanf("%s", students[i].name);
printf("Please enter the scores of student %d (4 scores separated by space): ", i + 1);
for (j = 0; j < 4; j++) {
scanf("%d", &students[i].scores[j]);
students[i].avg_score += students[i].scores[j];
}
students[i].avg_score /= 4;
}
printf("ID\tName\tScore1\tScore2\tScore3\tScore4\tAvgScore\n");
for (i = 0; i < n; i++) {
printf("%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n", students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2], students[i].scores[3], students[i].avg_score);
}
double max_avg_score = 0;
int max_idx = 0;
for (i = 0; i < n; i++) {
if (students[i].avg_score > max_avg_score) {
max_avg_score = students[i].avg_score;
max_idx = i;
}
}
printf("Student with highest average score: ID=%s, Name=%s, AvgScore=%.2f\n", students[max_idx].id, students[max_idx].name, students[max_idx].avg_score);
return 0;
}
```
c语言已知某课程10位同学的考试成绩,计算该课程的平均分、最高分、最低分和不及格的人数。 要求:用数组存取学生成绩。
好的,这个问题也可以使用 C 语言编写程序来解决。以下是一个例子:
```c
#include <stdio.h>
#define NUM_STUDENTS 10 // 学生人数
#define PASS_SCORE 60 // 及格分数
int main() {
float scores[NUM_STUDENTS]; // 学生成绩数组
float sum = 0; // 成绩总和
float avg; // 平均成绩
float max_score = 0; // 最高分
float min_score = 100; // 最低分
int num_failed = 0; // 不及格人数
int i; // 循环计数器
// 从键盘输入学生成绩
for (i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &scores[i]);
sum += scores[i];
// 更新最高分和最低分
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
// 统计不及格人数
if (scores[i] < PASS_SCORE) {
num_failed++;
}
}
// 计算平均成绩
avg = sum / NUM_STUDENTS;
printf("平均成绩为:%.2f\n", avg);
printf("最高分为:%.2f\n", max_score);
printf("最低分为:%.2f\n", min_score);
printf("不及格人数为:%d\n", num_failed);
return 0;
}
```
这个程序同样使用了一个数组来存储学生成绩,并且使用循环来从键盘输入成绩和计算平均成绩。然后,又使用循环来统计不及格人数和计算最高分和最低分。最后,程序输出平均成绩、最高分、最低分和不及格人数。
阅读全文