c语言找出若干个非零整数中最大值安以及他们的平均数a
时间: 2023-05-31 20:07:37 浏览: 101
对于这个问题,我可以回答。
首先,如果要找出若干个非零整数中最大值,我们可以使用一个循环来不断比较每个数与当前最大值的大小关系,更新最大值即可。代码如下:
```
int max = 0; // 假设第一个数为最大值
int count = 0; // 记录输入了多少个非零整数
int sum = 0; // 记录输入数的总和
int num;
scanf("%d", &num);
while (num != 0) {
if (num > max) {
max = num;
}
count++;
sum += num;
scanf("%d", &num);
}
printf("最大值为%d\n", max);
```
接着,如果要求这些数的平均数,只需要用总和除以个数即可求得平均值。代码如下:
```
float avg = (float)sum / count;
printf("平均数为%.2f\n", avg);
```
注意,这里要将sum强制转换为float类型,以免整数相除结果为整数。另外,%d表示输出整数,%.2f表示输出浮点数并保留两位小数。
相关问题
c语言输入十个整数求最大值和最小值和平均数
在C语言中,要实现输入十个整数并求最大值、最小值和平均数,可以按照以下步骤编写程序:
1. 定义必要的变量:用于存储用户输入的整数、最大值、最小值和总和的变量,以及用于循环计数的变量。
2. 使用循环结构输入整数:可以使用for循环或while循环来提示用户输入十个整数,并将它们存储在一个数组或者分别存储在十个变量中。
3. 初始化最大值和最小值:通常情况下,可以将数组的第一个元素或者某个变量初始化为最大值和最小值。
4. 遍历整数进行比较:再次使用循环遍历数组中的每个元素,更新最大值和最小值,并累加所有整数以计算总和。
5. 计算平均数:在所有整数输入并处理完毕后,将总和除以整数的数量(本例中为10)得到平均数。
6. 输出结果:最后,输出最大值、最小值和平均数。
下面是实现上述逻辑的一个简单示例代码:
```c
#include <stdio.h>
int main() {
int numbers[10];
int max, min, sum = 0;
float average;
int i;
// 输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
}
// 初始化最大值和最小值为数组的第一个元素
max = min = numbers[0];
// 遍历数组,找到最大值和最小值,同时计算总和
for (i = 0; i < 10; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
if (numbers[i] < min) {
min = numbers[i];
}
sum += numbers[i];
}
// 计算平均数
average = (float)sum / 10;
// 输出结果
printf("最大值:%d\n", max);
printf("最小值:%d\n", min);
printf("平均数:%.2f\n", average);
return 0;
}
```
在上述代码中,我们使用了一个数组`numbers`来存储用户输入的十个整数,变量`max`和`min`用来记录最大值和最小值,变量`sum`用来记录整数的总和,用于计算平均数。通过两个for循环分别进行输入和计算最大值、最小值以及总和。
C语言从键盘输入5个整数去掉最大值和最小值求平均数
在C语言中,你可以通过以下几个步骤从键盘输入五个整数,然后计算并去掉最大值和最小值后的平均数:
1. 首先,你需要定义一个数组来存储这五个整数,并初始化为0。例如,`int numbers[5] = {0};`
2. 然后使用`scanf()`函数获取用户输入的五个整数,记得给数组下标,如`numbers[i] = scanf("%d", &i);`
3. 接下来,遍历数组找到最大值和最小值,可以分别用两个变量`max`和`min`记录,初始时设为数组的第一个元素。遍历时比较当前元素和已知的最大值、最小值。
4. 创建两个临时变量`temp_max`和`temp_min`用于存放暂时的最大值和最小值,当发现新的最大值或最小值时,更新这两个变量。
5. 当找到最大值和最小值后,将数组的第一个元素(假设是最小值)和最后一个元素(假设是最大值)置零,因为我们要删除它们。
6. 由于数组长度减少2,我们需要重新计算剩余元素的总和和数量。使用一个新的变量`sum`记录总和,`count`记录剩下的有效元素。
7. 计算剩余元素的平均值,即`average = sum / (count - 2)`。
8. 最后,打印出计算出的平均值。
以下是示例代码片段:
```c
#include <stdio.h>
int main() {
int numbers[5], i, max, min, temp_max, temp_min, sum = 0, count = 5;
// 初始化数组
for (i = 0; i < 5; i++) {
numbers[i] = scanf("%d", &i);
if (i == 0) {
max = min = numbers[i];
} else {
if (numbers[i] > max) {
temp_max = max;
max = numbers[i];
} else if (numbers[i] < min) {
temp_min = min;
min = numbers[i];
}
}
}
// 更新最大值和最小值的位置
numbers[0] = temp_min;
numbers[count - 1] = temp_max;
// 删除最大值和最小值
count -= 2;
// 计算新平均值
for (i = 1; i < count; i++) {
sum += numbers[i];
}
double average = (double) sum / count;
printf("去掉最大值和最小值后的平均数是 %.2f\n", average);
return 0;
}
```
阅读全文