C语言编写,要求:先输入正整数n,再输入n个整数。输出这n个数据的极差。极差是指n个整数中的最大值与最小值的差值. [输入格式]第一行包含1个整数,为n的值;第二行包含n个整数。 [输出格式]一个非负整数,表示极差。
时间: 2024-03-07 14:47:21 浏览: 55
以下是 C 语言程序的代码实现:
```c
#include <stdio.h>
int main() {
int n, max, min, range;
scanf("%d", &n);
scanf("%d", &max);
min = max;
for (int i = 1; i < n; i++) {
int num;
scanf("%d", &num);
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
range = max - min;
printf("%d", range);
return 0;
}
```
程序的思路是先输入一个正整数 n,表示输入的整数个数,然后输入 n 个整数,每次更新最大值和最小值,最后计算它们的差值即为极差。注意,题目中要求输出一个非负整数,因此需要将差值用一个新的变量 range 存储,并输出该变量的值。
相关问题
请用C语言代码编程:先输入正整数n,再输入n个整数,最后输出这n个数据的极差。
好的,以下是符合您要求的C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, max, min, range;
printf("请输入正整数n:");
scanf("%d", &n);
int *arr = (int*)malloc(n * sizeof(int));
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
max = arr[0];
min = arr[0];
for (i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
range = max - min;
printf("这%d个数据的极差为:%d\n", n, range);
free(arr);
return 0;
}
```
代码解析:
1. 首先输入正整数n,表示接下来要输入的n个整数。
2. 使用动态内存分配,申请一个大小为n的整型数组arr。
3. 输入n个整数,并在循环中更新最大值和最小值。
4. 计算极差,并输出结果。
5. 释放动态分配的内存,并结束程序。
希望我的回答能够帮助到您!
C语言,程序功能: 先输入正整数n,再输入n个整数。输出这n个数据的极差。极差是指n个整数中的最大值与最小值的差值. [输入格式]第一行包含1个整数,为n的值;第二行包含n个整数。 (输出格式]一个非负整数.表示极差.
以下是 C 语言程序的代码实现:
```c
#include <stdio.h>
int main() {
int n, max = 0, min = 10000;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
printf("%d", - min);
return 0;
}
```
程序的思路是先输入一个正整数 n,表示输入的整数个数,然后循环输入 n 个整数,每次更新最大值和最小值,最后输出它们的差值即为极差。
阅读全文