c语言10个学生打分求最大值最小值怎么编程
时间: 2023-06-02 11:07:48 浏览: 120
您好!关于您的问题,我们可以通过数组和循环语句来实现。具体代码如下:
#include <stdio.h>
int main() {
int scores[10];
int i, max, min;
// 输入10个学生的成绩
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的成绩: ", i+1);
scanf("%d", &scores[i]);
}
// 初始化最大值和最小值为第一个成绩
max = min = scores[0];
// 查找最大值和最小值
for (i = 1; i < 10; i++) {
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 输出最大值和最小值
printf("最大值为%d,最小值为%d\n", max, min);
return 0;
}
以上代码实现了输入10个学生的成绩,然后通过循环遍历数组,查找出最大值和最小值,并输出结果。希望能够帮到您!
相关问题
如果十个评委分别一个选手打分,去掉最大值和最小值,打分求平均值c语言
在C语言中,如果你需要计算十个评委给一个选手打分后的平均分,并剔除最高分和最低分,可以按照以下步骤进行:
```c
#include <stdio.h>
#define NUM_JUDGES 10 // 判员数量
int main() {
int scores[NUM_JUDGES]; // 存储每个评委的分数
float sum = 0; // 初始化总分
float max_score, min_score; // 最高分和最低分
// 输入所有评委的评分
for (int i = 0; i < NUM_JUDGES; ++i) {
scanf("%d", &scores[i]);
sum += scores[i];
if (i == 0 || scores[i] > max_score) { // 第一次比较或当前分数更大
max_score = scores[i];
}
if (i == 0 || scores[i] < min_score) { // 第一次比较或当前分数更小
min_score = scores[i];
}
}
// 排除最高分和最低分,然后计算剩余得分的平均值
for (int i = 0; i < NUM_JUDGES && i != 0 && i != NUM_JUDGES - 1; ++i) { // 避免越界
sum -= (max_score + min_score); // 减去最大和最小值
sum += scores[i]; // 加上当前分数
}
// 计算并打印平均分
float average = sum / (NUM_JUDGES - 2); // 总数减去2是因为我们排除了两个极端值
printf("去掉最高分和最低分后的平均分为: %.2f\n", average);
return 0;
}
```
C语言 一个打分评分系统。键盘加入10个整数存放在数组中,将整数按照从大到小的顺序输出,去掉最大值和最小值后,输出平均值。
好的,这是一个简单的C语言程序,实现了一个打分评分系统,可以输入10个整数,按照从大到小的顺序输出,去掉最大值和最小值后,输出平均值。
```c
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
int score[N];
int i, j, max, min, sum;
//输入10个整数
printf("请输入10个整数:\n");
for(i = 0; i < N; i++)
{
scanf("%d", &score[i]);
}
//从大到小排序
for(i = 0; i < N - 1; i++)
{
max = i;
for(j = i + 1; j < N; j++)
{
if(score[j] > score[max])
{
max = j;
}
}
if(max != i)
{
int temp = score[i];
score[i] = score[max];
score[max] = temp;
}
}
//求去掉最大值和最小值后的平均值
sum = 0;
for(i = 1; i < N - 1; i++)
{
sum += score[i];
}
printf("去掉最大值和最小值后的平均值为:%d\n", sum / (N - 2));
//输出排序后的结果
printf("从大到小排序后的结果为:\n");
for(i = 0; i < N; i++)
{
printf("%d ", score[i]);
}
printf("\n");
return 0;
}
```
程序流程如下:
1. 定义一个长度为10的整型数组,用来存放输入的10个整数;
2. 通过for循环逐个输入10个整数,存放在数组中;
3. 通过双重for循环实现从大到小排序,每次找到最大值,与第i个元素交换位置;
4. 通过for循环求去掉最大值和最小值后的平均值;
5. 输出去掉最大值和最小值后的平均值;
6. 输出排序后的结果,从大到小输出数组中的每个元素。
注意:本程序中,平均值的计算是去掉最大值和最小值后的平均值,因此在排序后,第一个元素和最后一个元素即为最大值和最小值,可以去掉。
阅读全文