样例中的arr[0]交换后,再在后面交换一次后,就不见了,而最小值却储存了两个。
1条回答 默认 最新
关注
分别记录最大值及其下标、最小值及其下标,然后交换:
#include <stdio.h> int main() { int n; int num[10]; int i = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &num[i]); } int tmp; int imax = num[0]; int imin = num[0]; int idx_max = 0; int idx_min = 0; for (i = 1; i < n; i++) { if (num[i] > imax) { imax = num[i]; idx_max = i; } else if (num[i] < imin) { imin = num[i]; idx_min = i; } } tmp = num[n - 1]; num[n - 1] = imax; num[idx_max] = tmp; tmp = num[0]; num[0] = imin; num[idx_min] = tmp; for (i = 0; i < n; i++) printf("%d ", num[i]); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 python忆阻器数字识别
- ¥15 无法输出helloworld
- ¥15 高通uboot 打印ubi init err 22
- ¥20 PDF元数据中的XMP媒体管理属性
- ¥15 R语言中lasso回归报错
- ¥15 网站突然不能访问了,上午还好好的
- ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
- ¥15 semrush,SEO,内嵌网站,api
- ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
- ¥15 振荡电路,ADS仿真