c语言 先输入正整数n,再输入n个整数。输出这n个数据的极差。极差是指n个整数中的最大值与最小值的差值
时间: 2024-02-17 17:03:08 浏览: 36
好的,针对你的问题,我可以给你提供以下的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int n, max, min;
// 读入 n 和第一个数作为最大值和最小值的初始值
scanf("%d", &n);
scanf("%d", &max);
min = max;
// 依次读入剩余的 n - 1 个数,并更新最大值和最小值
for (int i = 2; i <= n; i++) {
int x;
scanf("%d", &x);
if (x > max) {
max = x;
}
if (x < min) {
min = x;
}
}
// 输出极差
printf("%d\n", max - min);
return 0;
}
```
这个程序中,我们首先读入正整数 n,然后读入 n 个整数,每次读入一个数时,都和当前的最大值和最小值进行比较,以更新最大值和最小值。最后,输出最大值与最小值的差,即为极差。
相关问题
请用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个整数,输出最小值
以下是使用C语言编写的输入n个整数并输出最小值的代码:
```c
#include <stdio.h>
int main() {
int n, i, min, num;
printf("请输入整数个数n:");
scanf("%d", &n);
printf("请输入%d个整数:", n);
scanf("%d", &num);
min = num;
for (i = 1; i < n; i++) {
scanf("%d", &num);
if (num < min) {
min = num;
}
}
printf("最小值为:%d\n", min);
return 0;
}
```
代码解析:
1. 首先通过`scanf`函数输入整数个数n;
2. 接着通过`scanf`函数循环输入n个整数,并用一个变量`min`存储当前最小值;
3. 在循环中,如果输入的数比当前最小值小,就更新最小值;
4. 循环结束后,输出最小值。
注意:本代码中假设输入的数都是正整数,如果要兼容负整数,需要将`min`的初值设为INT_MAX。