|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
麻烦各位大佬,看看我的出错在哪了
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- int len,i;
- int num[1024];
- int min,max,min_index,max_index;
- scanf("%d",&len);
- for(i=0;i<len;i++)
- {
- scanf("%d",&num[i]);
- }
- min = num[0];
- max = num[0];
- min_index = 0;
- max_index = 0;
- for(i=0;i<len;i++)
- {
-
- if(min>num[i])
- {
- min = num[i];
- min_index = i;
- }
- if(max<num[i])
- {
- max = num[i];
- max_index = i;
- }
- }
- //最小值和第一个值互换
- int t;
- t = num[min_index];
- num[min_index] = num[0];
- num[0] = t;
- //最大值和最后一个互换
- int k;
- k = num[max_index];
- num[max_index] = num[len-1];
- num[len-1] = k;
- for(i=0;i<len;i++)
- {
- printf("%d ",num[i]);
- }
-
- printf("\n");
- printf("%d %d\n",min_index,max_index);
- printf("%d %d\n",num[min_index],num[max_index]);
- system("pause");
- return 0;
- }
复制代码
输入
6
123 232 345 567 111 666
输出
111 232 345 567 666 123
对,输出的确是错的,那么正确的输出是什么样的呢?学会提问题
对,我再从上面走一次就可以走出正确结果
上面的过程比较短,我还愿意走一遍,如果过程很长呢?
你都走过一次了,把正确的结果也贴上来不好吗?
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- int len, i;
- int num[1024];
- int min, max, min_index, max_index;
- scanf("%d", &len);
- for(i = 0; i < len; i++)
- {
- scanf("%d", &num[i]);
- }
- min = num[0];
- max = num[0];
- min_index = 0;
- max_index = 0;
- for(i = 0; i < len; i++)
- {
- if(min > num[i])
- {
- min = num[i];
- min_index = i;
- }
- if(max < num[i])
- {
- max = num[i];
- max_index = i;
- }
- }
- //最小值和第一个值互换
- int t;
- t = num[min_index];
- num[min_index] = num[0];
- num[0] = t;
- if(num[0] == num[max_index])
- max_index = min_index;
- //最大值和最后一个互换
- int k;
- k = num[max_index];
- num[max_index] = num[len - 1];
- num[len - 1] = k;
- for(i = 0; i < len; i++)
- {
- printf("%d ", num[i]);
- }
- printf("\n");
- printf("%d %d\n", min_index, max_index);
- printf("%d %d\n", num[min_index], num[max_index]);
- system("pause");
- return 0;
- }
复制代码
|
|