解题思路:先找最小值交换,再找最大值再交换。
注意事项:不要一块找出最大最小然后交换,不然下脚标会出现问题。
参考代码:
#include<stdio.h> #include<stdlib.h> int a[10];//全局变量存放数据 void inputs(void)//输入函数 { for(int i=0;i<10;i++) { scanf("%d",&a[i]); } } void swaps(void)//功能交换函数 { int tempmin,tempmax,temp,flag1=0,flag2=1;//此处flag1为0,flag2为1是因为flag2在第二次查找用,第一次已经把最小值放到最前面a[0]了,所以从a[1]开始标记即可。 tempmin=a[0];//把第一个数给tempmin for(int i=0;i<10;i++)//查找最小值 { if(tempmin>a[i]) { tempmin=a[i]; flag1=i;//如果找到最小就标记 } } temp=tempmin;//开始进行交换 a[flag1]=a[0]; a[0]=temp; tempmax=a[0];//把改变后的第一个数给tempmax,注意是第一步交换完最小值之后的a[0],不能放在最前面是因为进行交换之后a[0]的值发生了变化。 for(int i=0;i<10;i++)//查找最大值 { if(tempmax<a[i]) { tempmax=a[i]; flag2=i;//找到就标记 } } temp=tempmax;//开始进行交换 a[flag2]=a[9]; a[9]=temp; } void print(void)//输出函数 { for(int i=0;i<10;i++) printf("%d ",a[i]); } int main()//主函数 { inputs();//三次函数调用 swaps(); print(); return 0; }
0.0分
0 人评分
母牛的故事 (C语言代码)浏览:478 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
【排队买票】 (C语言代码)浏览:944 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:645 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:624 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
C二级辅导-进制转换 (C语言代码)浏览:750 |
排序算法(选择,插入,冒泡)浏览:876 |