用C语言编写这样一个程序:任意的写出n个整数,对它们进行比较大小并把它们按从小到大的顺序输出

跪求答案

#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;
}追问

运行怎么有错误啊???

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-10
#include <stdio.h>
int main()
{
int n,i,j,t;

printf("输入n的值:");
scanf("%d/n",n);
int a[n];
printf("input n numbers :\n");
for (i=0;i<n;i++) scanf("%d",&a[i]);
printf("\n");
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if (a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers :\n");
for(i=0;i<n;i++) printf("%d ",a[i]);
printf("\n");
return 0;
}追问

运行出错???

相似回答
大家正在搜