c语言. 输入一个正整数n(1<=n<=10),再输入n个整数 (1)输出最大数和最小数,并输出平均值。
时间: 2024-05-12 10:18:15 浏览: 150
好的,我可以帮你解决这个问题。以下是用C语言实现该功能的代码:
```
#include <stdio.h>
int main()
{
int n, i, num;
int max = -1000000, min = 1000000, sum = 0;
float avg;
printf("请输入正整数n:");
scanf("%d", &n);
printf("请输入%d个整数:", n);
for(i = 0; i < n; i++)
{
scanf("%d", &num);
if(num > max) max = num;
if(num < min) min = num;
sum += num;
}
avg = (float)sum / n;
printf("最大数为:%d\n", max);
printf("最小数为:%d\n", min);
printf("平均值为:%.2f\n", avg);
return 0;
}
```
你可以直接将以上代码复制到你的C编译器中编译运行,输入数据后即可得到最大数、最小数和平均值的输出。希望对你有所帮助,还有什么问题可以继续问我哦~
相关问题
c语言. 输入一个正整数n(1<=n<=10),再输入n个整数,将这n个整数从大到小排序,然后在已经排序后的数组中插入平均数(取整),保持数组的顺序,将插入平均数后的数组输出。
好的,我明白您的问题。下面是解决方案:
```c
#include <stdio.h>
#define MAXSIZE 10
int main() {
int n, temp, sum = 0, insert_num;
int arr[MAXSIZE];
float avg;
printf("请输入 %d 以内的正整数 n:", MAXSIZE);
scanf("%d", &n);
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
// 从大到小排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 计算平均值
avg = (float) sum / n;
insert_num = (int) avg; // 取整
// 插入平均数
for (int i = 0; i < n; i++) {
if (arr[i] < insert_num) {
for (int j = n - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
arr[i] = insert_num;
break;
}
}
// 输出数组
printf("排序后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望我的回答对您有所帮助。
C语言:输入一个正整数n(1<n<=10),再输入n个整数,按绝对值从小到大排序输出
好的,这是一个关于排序的问题,让我想一下...将这些数按绝对值从小到大排序,可以先将它们全部取绝对值,然后按照普通排序方式进行排序即可。以下是具体实现的 C 语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 10
int cmp(const void *a, const void *b) {
return abs(*(int*)a) - abs(*(int*)b);
}
int main() {
int n;
int a[MAX_N];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(int), cmp);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
阅读全文