选择法不能排序,不知道出错在哪,请告知
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
int main()
{
int i,j,temp,n;
printf("你要排列的数的个数:"),
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf("第%d个数:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[j];
a[i]=a[j];
a[i]=temp;//将i与小值交换
}
}
}
printf("排列好的顺序为:\n");
for(i=0;i<n;i++)
printf("%4d",&a[i]);
return 0;
}
#include <stdio.h>
int main()
{
int i, j, temp, n;
printf("你要排列的数的个数:");
scanf("%d", &n);
int a[n];
for (i = 0; i < n; i++)
{
printf("第%d个数:", i + 1);
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++)
{
int min = i;
for (j = i + 1; j < n; j++)
{
if (a[min] > a[j])
min = j;
}
if (i != min)
{
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
printf("排列好的顺序为:\n");
for (i = 0; i < n; i++)
printf("%4d", a[i]);
return 0;
}