#include <stdio.h>
#include <stdlib.h>
//这个是排序函数,其实有好多版本的,这只是其中一版
void choise(int *a,int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i; /*给记号赋值*/
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j; /*是k总是指向最小元素*/
if(i!=k)
{ /*当k!=i是才交换,否则a[i]即为最小*/
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
int main(void)
{
//定义排序数据的个数
int n;
printf("请输入你要进行排序的数据个数\n");
scanf("%d",&n);
//录入要排列的数据
int * a;
a = (int *)malloc(sizeof(int)*(n+1));
printf("请输入你要排序的数据\n");
for(int i =0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("原始的数据排列是:\n");
for(int j = 0; j < n; j++)
{
printf("a[%d] = %d\t", j, a[j]);
}
//执行排序函数,对数据进行排序
choise(a, n);
//排序后对数据进行输出
printf("排列的数据排列是:\n");
for(int k = 0; k < n; k++)
{
printf("a[%d] = %d\t", k, a[k]);
}
printf("\n");
return 0;
}
追问运行怎么有错误啊???