c语言给你N个整数,要求删除最大和最小的数之后按原顺序输出。
时间: 2023-05-26 21:06:04 浏览: 63
一种可能的实现方式如下:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int nums[n]; // 存储输入的整数
int min_idx = 0, max_idx = 0; // 最小数和最大数的下标
int total = 0; // 所有数的和
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
total += nums[i];
if (nums[i] < nums[min_idx]) {
min_idx = i;
}
if (nums[i] > nums[max_idx]) {
max_idx = i;
}
}
total -= nums[min_idx] + nums[max_idx]; // 去掉最小和最大的数的和
for (int i = 0; i < n; i++) { // 按原顺序输出
if (i == min_idx || i == max_idx) { // 如果是最小或最大数则跳过
continue;
}
printf("%d ", nums[i]);
}
printf("\n");
printf("Total: %d\n", total); // 输出所有数的和
return 0;
}
```
这里用一个数组 `nums` 存储输入的整数,以及两个变量 `min_idx` 和 `max_idx` 分别记录最小和最大数的下标,以便在计算总和和输出结果时用到。在输入过程中顺便计算出所有数的和,并去掉最小和最大的数的和。最后按原顺序输出剩余的数,并输出所有数的和。注意,我们可以使用 `continue` 语句跳过最小和最大的数,在输出时不用特判这两个数。