|
发表于 2016-10-25 19:48:59
|
显示全部楼层
本帖最后由 Whitehat_K 于 2016-10-25 19:53 编辑
- /*
- 题目:对 10 个数进行排序
- 1.程序分析:可以利用选择法,即从后 9 个比较过程中,选择一个最小的与第一
- 个元素交换,下次类推,即用第二个元素与后 8 个进行比较,并进行交换。
- */
- #include<stdio.h>
- void swap(int *a,int *b);
- int main(void)
- {
- int i, j;
- int a[10] = { 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 };
-
- for( i=0 ; i < 10 ; i++)
- {
- for( j = i+1; j < 10; j++ )
- {
- swap(&a[i], &a[j]);
- }
- }
-
- for( i=0 ; i<10 ; i++)
- {
- printf("%5d\n",a[i]);
- }
- }
- void swap(int *a, int *b)
- {
- int temp;
- temp = *a;
- *a = *b;
- *b = temp;
- }
- #if(0)
- int swap(int a[],int b[])//另写交换函数要改变多个值为什么不试试指针传递参数
- {
- int i, j, temp;
- if( a[i] > b[j] )
- //warning C4700: local variable 'i' used without having been initialized
- //warning C4700: local variable 'j' used without having been initialized
- //这里的i,j是swap函数中的局部变量只定义没赋值;还有这里的i,j和main函数中的i,j不相同
- //swap函数这里的a[i],a[j]并不会改变main中的数组值
- {
- temp = a[i] ;
- a[i] = b[j] ;
- b[j] = temp ;
- }
- return 0;//void swap()就可以不写
- }
- #endif
复制代码 |
|