错误信息如下
--------------------Configuration: sqlist - Win32 Debug--------------------
Linking...
sq.obj : error LNK2005: "int __cdecl create(int * const)" (?create@@YAHQAH@Z) already defined in adjust.obj
sq.obj : error LNK2005: "void __cdecl disp(int * const,int)" (?disp@@YAXQAHH@Z) already defined in adjust.obj
sq.obj : error LNK2005: "int __cdecl ins(int * const,int,int,int)" (?ins@@YAHQAHHHH@Z) already defined in adjust.obj
sq.obj : error LNK2005: "int __cdecl del(int * const,int,int)" (?del@@YAHQAHHH@Z) already defined in adjust.obj
sq.obj : error LNK2005: "int __cdecl find(int * const,int,int)" (?find@@YAHQAHHH@Z) already defined in adjust.obj
Debug/sqlist.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.sqlist.exe - 6 error(s), 0 warning(s)

解决方案 »

  1.   

    重复包含了,请确保自己添加的头文件都用类似下面的方式弄起来#ifndefine MYH_H
    #define MYH_H
    //你的头文件的内容
    #endif
      

  2.   

    楼上的,我还是不知道怎么弄?
    我的程序如下sq.cpp文件程序如下#include <iostream.h>
    #define MaxLen 50
    typedef int elemtype;
    typedef elemtype sqlist[MaxLen];
    //创建一个顺序表
    int create(sqlist A)
    {
     int i,n;
     cout<<"创建一个顺序表"<<endl;
     cout<<"输入元素的个数:";
     cin>>n;
     for (i=0;i<n;i++)
     {
     cout<<"输入第"<<i+1<<"个元素值:";
     cin>>A[i];
     }
     return n;
    }
    //输出一个顺序表
    void disp(sqlist A,int n)
    {
     int i;
     cout<<"输出一个顺序表"<<endl<<"  ";
     if(n==0) cout<<"空表";
     for (i=0;i<n;i++)
     cout<<A[i]<<"  ";
     cout<<endl;
    }
    //在顺序表的第i个元素前插入一个元素x(注意是第i个元素前)
    int ins(sqlist A,int n,int i,elemtype x)
    {
     int j;
     if (i<0||i>n) cout<<"i值下溢或上溢"<<endl;
     else
     {
     for (j=n-1;j>=i;j--) A[j+1]=A[j];
     A[i]=x;n++;
     }
     return n;
    }
    //在顺序表A中删除第i个元素
    int del(sqlist A,int n,int i)
    {
     int j;
     if (i<0||i>n) cout<<"i值下溢或上溢"<<endl;
     else
     {
    for (j=i-1;j<n;j++) A[j]=A[j+1];
    n--;
     }
     return n;
    }
    //在一个有n个元素的顺序表A中查找元素值为x的元素
    int find(sqlist A,int n,elemtype x)
    {
    int i=0;
    while(i<=n && A[i]!=x) i++;
    if (i<n) return 1;
    else return 0;
    }--------------------------------------------------------------------------------------adjust.cpp文件程序如下#include "sq.cpp"
    void adjust(sqlist A,int n)
    {
    sqlist B;
    int i,x=0,y=n-1;
    for(i=0;i<n;i++)
    {
    if(A[i]<0)
    {
    B[x]=A[i];x++;
    }
    else
    {
    B[y]=A[i];y--;
    }
    }
    for(i=0;i<n;i++) A[i]=B[i];
    }
    void main()
    {
    sqlist A;
    int n;
    n=create(A);
    disp(A,n);
    adjust(A,n);
    disp(A,n);
    }
    --------------------------------------------------------------------------------------
    执行时错误信息如下:--------------------Configuration: sqlist - Win32 Debug--------------------
    Linking...
    sq.obj : error LNK2005: "int __cdecl create(int * const)" (?create@@YAHQAH@Z) already defined in adjust.obj
    sq.obj : error LNK2005: "void __cdecl disp(int * const,int)" (?disp@@YAXQAHH@Z) already defined in adjust.obj
    sq.obj : error LNK2005: "int __cdecl ins(int * const,int,int,int)" (?ins@@YAHQAHHHH@Z) already defined in adjust.obj
    sq.obj : error LNK2005: "int __cdecl del(int * const,int,int)" (?del@@YAHQAHHH@Z) already defined in adjust.obj
    sq.obj : error LNK2005: "int __cdecl find(int * const,int,int)" (?find@@YAHQAHHH@Z) already defined in adjust.obj
    Debug/sqlist.exe : fatal error LNK1169: one or more multiply defined symbols found
    Error executing link.exe.sqlist.exe - 6 error(s), 0 warning(s)那位好心人能帮帮我,是什么问题?
      

  3.   

    //*****************************new********************
    #ifndef __SQ_CPP__
    #define __SQ_CPP__
    //*****************************new********************
    #include <iostream.h>
    #define MaxLen 50
    typedef int elemtype;
    typedef elemtype sqlist[MaxLen];
    //创建一个顺序表
    int create(sqlist A)
    {
    int i,n;
    cout<<"创建一个顺序表"<<endl;
    cout<<"输入元素的个数:";
    cin>>n;
    for (i=0;i<n;i++)
    {
    cout<<"输入第"<<i+1<<"个元素值:";
    cin>>A[i];
    }
    return n;
    }
    //输出一个顺序表
    void disp(sqlist A,int n)
    {
    int i;
    cout<<"输出一个顺序表"<<endl<<" ";
    if(n==0) cout<<"空表";
    for (i=0;i<n;i++)
    cout<<A[i]<<" ";
    cout<<endl;
    }
    //在顺序表的第i个元素前插入一个元素x(注意是第i个元素前)
    int ins(sqlist A,int n,int i,elemtype x)
    {
    int j;
    if (i<0||i>n) cout<<"i值下溢或上溢"<<endl;
    else
    {
    for (j=n-1;j>=i;j--) A[j+1]=A[j];
    A[i]=x;n++;
    }
    return n;
    }
    //在顺序表A中删除第i个元素
    int del(sqlist A,int n,int i)
    {
    int j;
    if (i<0||i>n) cout<<"i值下溢或上溢"<<endl;
    else
    {
    for (j=i-1;j<n;j++) A[j]=A[j+1];
    n--;
    }
    return n;
    }
    //在一个有n个元素的顺序表A中查找元素值为x的元素
    int find(sqlist A,int n,elemtype x)
    {
    int i=0;
    while(i<=n && A[i]!=x) i++;
    if (i<n) return 1;
    else return 0;
    }
    //*****************************new********************
    #endif   //#define __SQ_CPP__
    //*****************************new********************
      

  4.   

    头文件重复包含了
    在所有的头文件开始的地方加一句
    #pragma once
      

  5.   

    我建议
    加一个文件sq.h声明函数
    #pragma once
    #include <iostream.h>
    #define MaxLen 50
    typedef int elemtype;
    typedef elemtype sqlist[MaxLen];
    //创建一个顺序表
    int create(sqlist A);//输出一个顺序表
    void disp(sqlist A,int n);
    //在顺序表的第i个元素前插入一个元素x(注意是第i个元素前)
    int ins(sqlist A,int n,int i,elemtype x);
    {
    //在顺序表A中删除第i个元素
    int del(sqlist A,int n,int i);
    //在一个有n个元素的顺序表A中查找元素值为x的元素
    int find(sqlist A,int n,elemtype x);adjust.cpp文件程序#include "sq.cpp"改为#include "sq.h"
    void adjust(sqlist A,int n)
    {
    sqlist B;
    int i,x=0,y=n-1;
    for(i=0;i<n;i++)
    {
    if(A[i]<0)
    {
    B[x]=A[i];x++;
    }
    else
    {
    B[y]=A[i];y--;
    }
    }
    for(i=0;i<n;i++) A[i]=B[i];
    }
    void main()
    {
    sqlist A;
    int n;
    n=create(A);
    disp(A,n);
    adjust(A,n);
    disp(A,n);
    }
      

  6.   

    把两个文件放在一个project 中
      

  7.   

    不要包含.cpp文件,把函数声明放到单独的.h文件中。
      

  8.   

    adjust.h里是不是包含了sq.h