高手帮忙做C语言题!

冒泡排序算法实现将一个长度为N的数组ary所有整形元素按升序排列。试完成相关函数。#include<stdio.h>#defineN10voidshow(intr[],i... 冒泡排序算法实现将一个长度为N的数组ary所有整形元素按升序排列。试完成相关函数。
#include<stdio.h>
#define N 10
void show(int r[] , int n)
{
/*elements are stored in r[1] to r[n]*/

}

void bubblesort(int r[],int n)
{ /*elements are stored in r[1] to r[n]*/

} /*bubblesort*/
void main()
{
int a[N],i;
printf("请输入 %d 个整数:\n",N);
for(i=0;i<N+1;i++)
scanf("%d",&a[i]);
printf("数组A的%d个元素是:\n",N);
show(a,N);
printf("冒泡法排序每趟的情形是:\n");

bubblesort(a,N);
printf("\nafter sorted by bubblesort:\n");
show(a,N);
}

算法越多越好!答的好的我再加分!
这是我们老师给的题~有问题也是他的错~
我自己当然看不太懂~
展开
 我来答
wubenhua2008
2008-12-06 · TA获得超过934个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:457万
展开全部
你的那个题目给的有点问题,你在被调函数里说数据存储到r[1]到r[n]是n个元素,而在读入数据的时候确实0到n是n+1个元素! 不知道你要怎样的!
改了一下如下:

#include<stdio.h>
#define N 10
void show(int r[] , int n)
{
printf("array : ");
for(int i=0; i<n; i++)
{
printf("%d ",r[i]);
}
printf("\n");

}

void bubblesort(int *r,int n) /*排序好的数组怎么返回去呢?是不是要用个指针好些!! */
{
for(int i=0; i<n-1; i++)
for(int j=0; j<n-1-i; j++)
{ if(r[j+1]<r[j])
{
r[j] = r[j]-r[j+1];
r[j+1] = r[j]+r[j+1];
r[j]= r[j+1]-r[j];
}
show(r,n);/*显示每趟的情况 */
}

} /*bubblesort*/
void main()
{
int a[N],i;
printf("请输入 %d 个整数:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("数组A的%d个元素是:\n",N);
show(a,N);
printf("冒泡法排序每趟的情形是:\n");

bubblesort(a,N);
printf("\nafter sorted by bubblesort:\n");
show(a,N);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式