解题思路:
注意事项:依次选出和交换max、min,别先选出各自下标,再交换,在第一次交换时,可能会改变原下标下的数值,先前记录的max/min已被更新,造成标记过时
参考代码:
#include <stdio.h>
#define LEN 10
#define CHANGE(a,b) t=a,a=b,b=t
int arr[LEN]; //全局变量便于修改
int t; //交换用过渡变量
int i; //循环计数器
void input(){
for(i=0;i<LEN;i++)
scanf("%d",&arr[i]);
}
void dispose(){
int max_idx=0,min_idx=0;
//依次交换max、min
for(i=0;i<LEN;i++)
if(arr[i]>arr[max_idx])
max_idx=i;
// printf("max_idx=%d\n",max_idx);
CHANGE(arr[LEN-1],arr[max_idx]);
for(i=0;i<LEN;i++)
if(arr[i]<arr[min_idx])
min_idx=i;
// printf("min_idx=%d\n",min_idx);
CHANGE(arr[0],arr[min_idx]);
}
void output(){
for(i=0;i<LEN;i++)
printf("%d ",arr[i]);
}
int main()
{
input();
dispose();
output();
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1071 |
字符串对比 (C语言代码)浏览:1471 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:536 |
C语言训练-8除不尽的数 (C语言代码)浏览:1469 |
筛排处理 (C语言代码)浏览:830 |
【出圈】 (C++代码)简单循环浏览:699 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:405 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言描述——递归算法)浏览:1150 |