输入n个正整数到数组中,将它们从小到大排序后输出,要求使用冒泡排序法。

#include <stdio.h>
#include <malloc.h>
main()
{
int i,*a,t,n,j;
printf("qing shu ru chang du\n");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",*(a+i));
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(*(a+i)>*(a+i+1)){t=*(a+i);*(a+i)=*(a+i+1);*(a+i+1)=t;}
}
}
for(i=0;i<n;i++)
{
printf("%d\t",*(a+i));
}
free(a);
}

哪里不对???

#include <stdio.h>
#include <malloc.h>
main()
{
int i,*a,t,n,j;
printf("qing shu ru chang du\n");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",a+i);
}
for(j=0;j<n;j++)
{
for(i=0;i<j;i++)
{
if(*(a+i)>*(a+i+1)){t=*(a+i);*(a+i)=*(a+i+1);*(a+i+1)=t;}
}
}
for(i=0;i<n;i++)
{
printf("%d\t",*(a+i));
}
free(a);
}追问

那个循环比较大小的那个没大看懂

循环还是不对啊

温馨提示:答案为网友推荐,仅供参考
相似回答