网站首页  |  业界新闻  |  技术文章  |  视频教程  |  下载频道  |  程序源码  |  个人空间  |  编程论坛
 
学习型 ASP/PHP/ASP.NET 主机 30元/年 全能 ASP/PHP/ASP.NET 主机,支持月付 专业 MSSQL 数据库空间,支持月付 专业 MySQL 数据库空间,支持月付
 23 123
发新话题
打印

帮我看下

帮我看下

#include "stdio.h"
#define N 4
int a[N];
int convert();
void main()
{
    int i;
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    convert(int a[]);
    
}
convert(int a[])  
{
    int i,j,d,r,k,m;
    k=0; m=N-1; //m=3
    while(k<m)
    {
        j=m-1;  //j=2  
        for(i=k;i<j;i++) //循环2次
            if(a[i]>a[i+1])
            { d=a[i]; a[i]=a[i+1]; a[i+1]=d; }  //对前3项排列
        m=i-1; //m=0
        j=k+1; //j=1
        for(i=m;i>=j;i--) //循环2次
            if(a[i]<a[i-1])
            { r=a[i]; a[i]=a[i-1]; a[i-1]=r; } //对后3项排列
        k+=1;
        m-=1;//这边我又改了下 你看看
    }
    for(i=0;i<N;i++)
      printf("%d\n",a[i]);
}

[ 本帖最后由 走一圈 于 2008-5-9 23:46 编辑 ]

TOP

int convert(int a[]);//函数没影下到 下面的printf 所以输出的还是原来的顺序?  谁帮我试下
    for(i=0;i<N;i++)
    printf("%d\n",a[i]);

TOP

main函数没有调用convert函数。。
调用不要加前面的int,你这样是声明
“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!

TOP

我改了 我不方便调试 你看那可否 只有TC  没VC  我标了下你看看 好象没什么问题 吧

[ 本帖最后由 走一圈 于 2008-5-9 23:19 编辑 ]

TOP

检查一下,排序有错
“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!

TOP

排序我检查过了 看不出来

TOP

看看书上的排序...
我是海盗,在程序的海洋漂泊,享受寂静孤独。。。。

TOP

书上有用2个FOR循环的 没 快速排列的 别学我说看书 书上真的没这我自己写的   我又改了

[ 本帖最后由 走一圈 于 2008-5-9 23:47 编辑 ]

TOP

书里只有冒泡法 哦  睡觉了 看看明天有什么新发现

[ 本帖最后由 走一圈 于 2008-5-10 00:09 编辑 ]

TOP

这是啥排序?两端冒泡?
专心编程………
我的Blog……

TOP

 23 123
发新话题