每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
将一个长度为10的数列最大值放第一个,最小值放最后一个。
输入样例:
1 2 3 4 5 9 0 7 8 6
输出样例:
9 2 3 4 5 1 6 7 8 0
解决方法:
(1)算法的基本思想:
通过“打擂法”找出最大的和最小的数字,同时记录下它们的位置,交换即可。
(2)代码实现:
#include <stdio.h>
int main()
{
int a[10];
int i = 0;
while (i < 10)
{
scanf("%d", &a[i]);
++i;
}
int big = a[0];
int small = a[0];
int m = 0;
int n = 0;
for (i = 1; i < 10; ++i)
{
if (a[i] > big)
{
big = a[i];
m = i;
}
if (a[i] < small)
{
small = a[i];
n = i;
}
}
int temp;
temp = a[0];
a[0] = a[m];
a[m] = temp;
temp = a[9];
a[9] = a[n];
a[n] = temp;
for (i = 0; i < 10; ++i)
{
printf("%d ", a[i]);
}
return 0;
}
输入样例:
6 11 5 10 13 35 9
输出样例:
3 5 11 13