c语言冒泡法纠错(基础)

我的排序怎么做不出来啊!急!急!急! ! !请教高手.
#include<stdio.h>
#define N 6
main()
{
int i,j,t,a[N+1];
printf("Input N mumbers:\n");
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
for(i=1;i<N-1;i++)
for(j=i+1;j<N;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
printf("The sorted numbers:\n");
for(i=1;i<=N;i++)
printf("%10d",&a[i]);
}

#include<stdio.h>
#define N 6
main()
{
int i,j,t,a[N+1];
printf("Input N mumbers:\n");
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
for(i=1;i<N-1;i++)
for(j=1;j<N-i;j++) //**********
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
printf("The sorted numbers:\n");
for(i=1;i<=N;i++)
printf("%10d",a[i]); //********
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-30
int i,j,t,a[N+1]; \\a[N+1]哪有这样定义的,C语法规定数组不能为变量长度 先把这改了
第2个回答  2009-04-30
#include<stdio.h>
#define N 6
main()
{
int i,j,t,a[N+1];
printf("Input N mumbers:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
printf("The sorted numbers:\n");
for(i=0;i<N;i++)
printf("%10d",a[i]);
}

你拿这个程序去运行下,应该没问题了,在表示数组时,右标从零开始,如表示a[2],则a数组里的两数分别为:a[0],a[1]。
第3个回答  2009-04-30
只要把最后一句改成
printf("%10d",a[i]); 就可以了。
至于循环控制的话多一点也无所谓的。

C语言冒泡排序 直接输出原样数据,不排序,哪里错了?
第8行for循环错误,应改为:for(n=m+1;n<3;n++)

c语言冒泡排序法中的小问题,高人帮忙看看啊
你把4改为5就对了,基本上一楼说的冒泡是每次把最小(大)的值冒上来是对的,但是你的错误是没有排到最后一个数,或者你把i<4改为<=,同时j<4-i改为j<=4-i也可以 而且为了实现向前冒泡还需要,把j=1改为j=i就可以了

C语言简单冒泡法程序
1、打开Visual stdio软件,在空项目里新建一个c语言程序空文件:2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:3、这里从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾,经过一轮的比...

关于c语言冒泡问题
(1)比较第一个数与第二个数,若a[0]>a[1],则交换,大数放在a[1]中;然后比较a[1]与a[2]……依次类推,直至第n-1个数和第n个数比较结束为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上,沉到了最底部;(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安...

C语言问题,求高手解答下。冒泡排序法从大到小排。不管输入什么,第2...
lz的不是标准的冒泡法代码啊 不过也可以啦,我试了一下,应该是第三个for循环的控制条件,应该是j<9,你后面都有j+1了,10的话,不就越界了么

c语言怎么做冒泡排序啊?
使用冒泡排序法进行编程:解释:1.第一个for循环:利用数组循环输入4个变量。2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。3.第三个for循环:利用循环依次输出排序后的...

C语言冒泡排序法是什么?
冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是:相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到...

C语言的一个小问题,冒泡排序法。。。问题
冒泡的精髓是比较大的下沉(或较小的上浮),应该有两个循环,即如果有n个数,则要进行n-1趟比较,在第1趟要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。你可以看看这个程序,作个参考 include<stdio.h> define N 10 void main(){ int i,j;float t;float a[N];for(i=0;...

冒泡排序c语言
冒泡排序,是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会...

C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序
代码如下(对10个整数进行升序排序):include<stdio.h> int main(){ int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};\/\/排序 for(i=1;i<10;i++)\/\/外循环控制排序趟数,n个数排n-1趟 { for(j=0;j<10-1;j++)\/\/内循环每趟比较的次数,第j趟比较n-i次 { if(a[j]>a...

相似回答
大家正在搜