| 
 | 
 
 
发表于 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
 
  复制代码 |   
 
 
 
 |