编写c语言程序,输入一批整数,最多不超过100个,以零为结束标志,找出最大数和最小数值所在的位置,并把二者对掉,然后输出调整后的这批整数。预期输出最大值下标,最小值下标结果。
时间: 2023-10-26 15:04:43 浏览: 93
好的,以下是符合您要求的 C 语言程序:
```c
#include <stdio.h>
int main() {
int nums[100];
int max_index = 0, min_index = 0;
int max = -10000, min = 10000;
int i = 0;
printf("请输入一批整数,以 0 结束:\n");
while (1) {
scanf("%d", &nums[i]);
if (nums[i] == 0) {
break;
}
if (nums[i] > max) {
max = nums[i];
max_index = i;
}
if (nums[i] < min) {
min = nums[i];
min_index = i;
}
i++;
}
printf("最大值下标:%d\n", max_index);
printf("最小值下标:%d\n", min_index);
// 交换最大值和最小值
int temp = nums[max_index];
nums[max_index] = nums[min_index];
nums[min_index] = temp;
printf("调整后的整数序列为:\n");
for (int j = 0; j < i; j++) {
printf("%d ", nums[j]);
}
return 0;
}
```
程序的思路是:先读入一批整数,同时记录下最大值和最小值出现的位置。然后再通过交换最大值和最小值,得到调整后的整数序列。最后输出最大值和最小值的位置,以及调整后的整数序列。
需要注意的是,在读入整数的时候,我们需要判断是否读到了结束标志 0。同时,我们需要设置一个计数器 i,记录下实际读入的整数个数。在输出整数序列时,我们只需要输出前 i 个整数。
阅读全文