选择排序
#include <stdio.h>#define N 10
int main()
{
int n,t=0,i,j,a,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
for(i=0;i<n-1;i++)
{
max = a;
for(j=i+1;j<n;j++)
if(max<a)max=a;
t = a;
a = max;
max = t;
}
for(i=0;i<n;i++)
{
printf("%d ",a);
}
return 0;
}//请问我的选择排序哪里错了 本帖最后由 风过无痕1989 于 2020-12-21 16:25 编辑
以下是调试好的程序,由小到大排序:
#include <stdio.h>
#define N 10
int main()
{
int n = 10, t = 0, i, j, a, max;
scanf("%d", &n);
for (i = 0;i<n;i++)
{
scanf("%d", &a);
}
for (i = 0;i < n;i++)
{
max = a;
for (j = 0;j < n;j++)
{
if (max < a)
{
max = a;
t = a;
a = max;
a = t;
}
}
}
for (i = 0;i<n;i++)
{
printf("%d ", a);
}
return 0;
} 本帖最后由 小甲鱼的铁粉 于 2020-12-21 16:04 编辑
看楼上 小甲鱼的铁粉 发表于 2020-12-21 16:00
这个一代码块的逻辑错了
选择排序的基本算法是从待排序的区间中经过选择和交换后选出最大的数值存放到 a ...
加红的两个a是ai,我打的是ai,但是一直显示a 程序已经帮你调试好了
页:
[1]