注册 登录
编程论坛 数据结构与算法

求前辈指导

付得福 发布于 2014-01-01 23:28, 749 次点击
下面程序是根据私下学习排序后,写出来的,但是在VC++6.0中不能运行,出现很多错误,但是我都知道如何改正,请前辈指导!


#include <stdio.h>
int mian()
{
    int i,j,n;
    A[8]={3,4,33,23,18,13,15,22};
    insert_sort(elementtype A[n+1]);
    for(i=2;i<=n;i++)
        printf("%d\t",A[i]);
    return 0;
}
int insert_sort(elementtype A[n+1])
{
    for (i=2;i<=n;i++)
    {A[0]=A[1];
     j=i-1;
     while (A[j]>A[0])
     { A[j+1]=A[j];
       j=j-1;
     A[j+1]=A[0];
     }
    }     
}
5 回复
#2
yuccn2014-01-02 08:23
你应该语法还不熟悉吧?
好好补一下

    int i,j,n;
    A[8]={3,4,33,23,18,13,15,22};  A是什么类型?这是一个错误,
    insert_sort(elementtype A[n+1]); 数据参数,直接insert_sort(A,n);就可以了,记得要初始化一次n

int insert_sort(elementtype A[n+1]) 这样可以看出你 基本语法都还不懂了
改成 int insert_sort(elementtype A[],int n)吧,先认真学习下在写~~

insert_sort内部的算法好像不对
#3
wp2319572014-01-02 08:43
有点闲  简单说一下

程序代码:


#include <stdio.h>
//函数应该有声明  否则应该写在main之前
int insert_sort(int A[]);  //声明应该有数据类型
int main()     //应该是main  而不是mian
{
    int i,j,n;
    int A[8]= {3,4,33,23,18,13,15,22};  //要由数据类型
    insert_sort(A);  //调用者仅仅是调用地址即可
    for(i=0; i<8; i++)
        printf("%4d",A[i]);
    return 0;
}
int insert_sort(int A[])  //这里与上面声明保持一致即可
{
    int i ,j ,tmp ;   //变量使用之前要定义
    for (i=0; i<8; i++)   //这里n是虾米???
    {
        for (j=i; j<8; j++)   //至于你的算法部分 实在是看不懂 完全改掉了
        {
            if (A[j]>A[i])
            {
                tmp=A[j];
                A[j]=A[i];
                A[i]=tmp;
            }
        }
    }
}


#4
embed_xuel2014-01-02 08:50
先去学学c语言吧
#5
付得福2014-01-03 17:27
回复 3楼 wp231957
感谢您的指导!
#6
付得福2014-01-03 17:27
回复 2楼 yuccn
嗯,感谢大神的深刻教育!
1