解题思路:
1、找出数组中最小的数和下标;
2、按照顺序进行交换;
3、遍历数组中所有的数。
如图:
4 a[0] | 5 a[1] | 6 a[2] | 3 a[3] | 2 a[4] | 1 a[5] | 0 a[6] | 9 a[7] | 8 a[8] | 7 a[9] |
说明:第一次遍历,从a[0]开始,找出最小的数0和他的下标a[6],比较后交换。
第二次遍历,从a[1]开始,找出最小的数1和他的下标a[5],比较后交换。
第三次遍历,从a[2]开始,找出最小的数2和他的下标a[4],比较后交换。
………………………………
涉及知识点:整型数组和整型数组的输入与输出、循环和循环嵌套、数组下标的使用。
代码如下:
#include<stdio.h> //头文件 #define s 10 //定义一个宏参数 int main() { int a[s]={4,5,6,3,2,1,0,9,8,7}; //初始化数组; int i,j; int b=-1; //用来获取数组中最小的数,初始化时尽量不要与数组中的数字重合。 int c=-1; //用来获取a[]数组中的下标。 int M; //交换时临时变量。 for(i=0;i<s;i++) //给数组赋于新值,获取新的十个数。 { scanf("%d",&a[i]); } for(j=0;j<s;j++) // 外层循环,从a[0]开始遍历。 { b=a[j];//初始化b的值。 for(i=j;i<s;i++) //找出数组中最小的数和它的下标。 { if(b>a[i]) { b=a[i]; c=i; } } if(c!=-1)//交换最小的数,不等于-1是为了防止出现b<a[i]时,数据停止执行。 { M=a[j]; a[j]=a[c]; a[c]=M; } c=-1; //遍历时,每遍历一次,将下标初始化,注意初始化时尽量不要与数组中的下标重合。 } for(i=0;i<s;i++)//输出。 { printf("%d\n",a[i]); } return 0; }
0.0分
11 人评分
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:961 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1050 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:754 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:373 |
【金明的预算方案】 (C++代码)浏览:831 |
用筛法求之N内的素数。 (C语言代码)浏览:631 |
C语言训练-自由落体问题 (C语言代码)浏览:592 |
DNA (C语言描述,蓝桥杯)浏览:1531 |
K-进制数 (C语言描述,蓝桥杯)浏览:911 |
矩阵加法 (C语言代码)浏览:1680 |