选择排序问题!
本帖最后由 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);
}
putchar('\n');
sort(a,n);
for (i=0;i<n;i++)
{
printf("%d\t",a);
}
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<a) //为什么不能直接交换?(不是第二个和第一个比较吗?,第三个。第四个。。。)
// k=j;
sle=a; //直接将小的与a交换位置
a=a;
a=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);
}
putchar('\n');
sort(a,n);
for (i=0;i<n;i++)
{
printf("%d\t",a);
}
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<a) //为什么不能直接交换?(不是第二个和第一个比较吗?,第三个。第四个。。。)
{ sle=a; //直接将小的与a交换位置
a=a;
a=sle; // k=j;
}
}
}
} 良弓无箭 发表于 2020-2-22 12:54
你好,你说的直接交换是什么意思?你的代码思路没错,只是if后面没有加大括号。
非常感谢!!!我就说找不到问题所在!!!想了好久不知道错在哪里!!!
页:
[1]