6.3 交换最小值和最大值输入一个正整数 n (1<n<=10),再输入n 个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n 个数。C语言
时间: 2024-05-02 11:19:51 浏览: 43
好的,听懂了。以下是代码实现:
```c
#include <stdio.h>
int main() {
int n, i, min = 0, max = 0, temp;
scanf("%d", &n);
int nums[n];
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
if (nums[i] < nums[min]) min = i; // 找到最小值所在的下标
if (nums[i] > nums[max]) max = i; // 找到最大值所在的下标
}
// 交换最小值和第一个数
temp = nums[0];
nums[0] = nums[min];
nums[min] = temp;
// 交换最大值和最后一个数
temp = nums[n-1];
nums[n-1] = nums[max];
nums[max] = temp;
// 输出交换后的n个数
for (i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
希望能够帮到您!
相关问题
6.3 交换最小值和最大值 输入一个正整数 n (1<n<=10),再输入n 个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n 个数。代码形式
n = int(input())
lst = list(map(int, input().split()))
min_index = lst.index(min(lst))
max_index = lst.index(max(lst))
lst[0], lst[min_index] = lst[min_index], lst[0]
lst[-1], lst[max_index] = lst[max_index], lst[-1]
for num in lst:
print(num, end=' ')
请解释MatLab语句:s1 = num2str([1.23, 4.5], '%6.3f\n')
这是一行MATLAB代码,它将一个包含两个的数组 [1.23 4.5] 转换为,并使用格式化字符串 '%.3f\n' 进行格式化在这个语句中,函数 numstr() 用于将数字转换字符串。第一个参数是要转换数组 [1.23, 4.5,第二个参数是格式化字符串 '%6.3f\n'。格式化字符串中的 '%6.3f' 表示将数字格式化为浮点数,并保留3位小数。而 '\n' 表示在每个数字后添加一个换行符。
执行这行代码后,变量 s1 将包含一个字符串 ' 1.230\n 4.500\n'。注意,字符串中的每个数字都会占据6个字符的宽度,并且以换行符结尾。