|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Cool_Breeze 于 2020-2-22 11:54 编辑
- #include <stdio.h>
- int main(void)
- {
- int a[]={3,6,1,9,4};
- int n=sizeof(a)/sizeof(int);
- void sort(int a[],int n);
-
- int i;
- for (i=0;i<n;i++)
- {
- printf("%d\t",a[i]);
- }
- putchar('\n');
- sort(a,n);
-
- for (i=0;i<n;i++)
- {
- printf("%d\t",a[i]);
- }
- return 0;
-
- }
- void sort(int a[],int n)
- {
- int i,j,sle=0;
- for (i=0;i<n-1;i++)
- {
- //int k=i;
- for (j=i+1;j<n;j++)
- {
- if (a[j]<a[i]) //为什么不能直接交换?(不是第二个和第一个比较吗?,第三个。第四个。。。)
- // k=j;
- sle=a[j]; //直接将小的与a[i]交换位置
- a[j]=a[i];
- a[i]=sle;
- }
- }
- }
复制代码
你好,你说的直接交换是什么意思?你的代码思路没错,只是if后面没有加大括号。
- #include <stdio.h>
- int main(void)
- {
- int a[]={3,6,1,9,4};
- int n=sizeof(a)/sizeof(int);
- void sort(int a[],int n);
-
- int i;
- for (i=0;i<n;i++)
- {
- printf("%d\t",a[i]);
- }
- putchar('\n');
- sort(a,n);
-
- for (i=0;i<n;i++)
- {
- printf("%d\t",a[i]);
- }
- return 0;
-
- }
- void sort(int a[],int n)
- {
- int i,j,sle=0;
- for (i=0;i<n-1;i++)
- {
- //int k=i;
- for (j=i+1;j<n;j++)
- {
- if (a[j]<a[i]) //为什么不能直接交换?(不是第二个和第一个比较吗?,第三个。第四个。。。)
- { sle=a[j]; //直接将小的与a[i]交换位置
- a[j]=a[i];
- a[i]=sle; // k=j;
- }
- }
- }
- }
复制代码
|
|