c语言求输入n(0<n<20)及n个整数,输出这n个整数的平均值的整数部分
时间: 2024-11-25 11:33:34 浏览: 1
C语言程序 计算所输入的整数n的1到n总和和平均数
在C语言中,为了求解这个问题,你可以按照以下步骤编写程序:
1. 首先,通过`scanf()`函数获取用户输入的整数n,确保它满足条件0 < n < 20。
```c
int n;
printf("请输入0到19之间的正整数n:");
scanf("%d", &n);
```
2. 接着,创建一个大小为n的一维数组来存储这n个整数,并再次使用`scanf()`获取每个元素。
```c
int numbers[n];
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个整数:", i + 1);
scanf("%d", &numbers[i]);
}
```
3. 计算所有数字的总和并除以n,得到平均值。由于题目要求输出整数部分,可以使用`rint()`函数将浮点数转换为最接近的整数。但在C语言标准库中,没有这个函数,你需要自定义一个方法或者使用`*(double*)&number`的方式来进行转换,然后强制类型转换回整数。
```c
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += numbers[i];
}
// 自定义方法转换为整数(假设n为偶数)
double average = sum / n;
int integer_average = (int)(average - 0.5); // 对四舍五入误差进行修正
// 或者使用强制类型转换
// int integer_average = *(int*)&average;
```
4. 最后,打印出计算得到的平均值的整数部分。
```c
printf("这n个整数的平均值的整数部分为:%d\n", integer_average);
```
完整代码示例:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入0到19之间的正整数n:");
scanf("%d", &n);
if (n < 0 || n > 19) {
printf("输入错误,n必须在0到19之间。\n");
return 1;
}
int numbers[n];
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个整数:", i + 1);
scanf("%d", &numbers[i]);
}
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += numbers[i];
}
double average = sum / n;
int integer_average = (int)(average - 0.5);
printf("这n个整数的平均值的整数部分为:%d\n", integer_average);
return 0;
}
```
阅读全文