
下面的C语言程序返回次数怎么老是不对啊,高手帮下忙,谢谢!!!
#include"stdio.h"#defineN100main(){intBubbleSort(int[],int);inta[N],i,m,time;printf("...
#include "stdio.h"
#define N 100
main()
{
int BubbleSort(int[],int);
int a[N],i,m,time;
printf("请输入比较个数:");
scanf("%d",&m);
printf("输入待排序数列:");
for(i=0;i<m;i++)
scanf("%d",&a[i]);
BubbleSort(a,m);
printf("冒泡法排序结果:");
for(i=0;i<m;i++)
printf("%3d",a[i]);
time=BubbleSort(a,m);
printf("冒泡法比较次数=%d",time);
getchar();
}
int BubbleSort(int array[],int n)
{
int i,j,temp,t=0;
for(i=n-1;i>0;i--)
for(j=0;j<i;j++)
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
t++;
}
return t;
} 展开
#define N 100
main()
{
int BubbleSort(int[],int);
int a[N],i,m,time;
printf("请输入比较个数:");
scanf("%d",&m);
printf("输入待排序数列:");
for(i=0;i<m;i++)
scanf("%d",&a[i]);
BubbleSort(a,m);
printf("冒泡法排序结果:");
for(i=0;i<m;i++)
printf("%3d",a[i]);
time=BubbleSort(a,m);
printf("冒泡法比较次数=%d",time);
getchar();
}
int BubbleSort(int array[],int n)
{
int i,j,temp,t=0;
for(i=n-1;i>0;i--)
for(j=0;j<i;j++)
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
t++;
}
return t;
} 展开
2个回答
展开全部
- -!
你好像调了两次排序函数啊。。。
应该第一次调用的时候,直接就time=BubbleSort(a,m);
然后直接输出就行了~
printf("冒泡法排序结果:");
for(i=0;i<m;i++)
printf("%3d",a[i]);
printf("冒泡法比较次数=%d",time);
原因是,第二次调用的时候,数组已经有序了,所以返回的time就是0了。。。
你好像调了两次排序函数啊。。。
应该第一次调用的时候,直接就time=BubbleSort(a,m);
然后直接输出就行了~
printf("冒泡法排序结果:");
for(i=0;i<m;i++)
printf("%3d",a[i]);
printf("冒泡法比较次数=%d",time);
原因是,第二次调用的时候,数组已经有序了,所以返回的time就是0了。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询