注册 登录
编程论坛 C++教室

出问题了 请大家帮我看看

honghong88 发布于 2011-11-13 22:04, 519 次点击
#include<iostream>
#include< string>
  using namespace std;

int main()
{ void cmp (char *name[],int n );
  void print (char *name[],int n );
   
   
    char *name[5];
int i ;

for(i=0;i<5;i++  )
{cout<<"input"<<i+1;
cin>>name[i];

}

void cmp(name ,5  );
void print(name,5 );


}

void cmp (char  * name[],int n )
{ char *temp;
int i,j,k;
for( i=0;i<n-1;i++ )
{k=i;
for(j=i+1;j<n-1;j++)
  if((strcmp(name[k],name[j]))>0 )
      k=j;
if(k!=i)
{temp = name[i] ;  name[i]=name[k];name[k]=temp;       }
}
}

void  print(char * name[],int n )
{ int i;
   
for(i=0; i<n;i++  )
     cout<<name[i]<<endl;
      
}

>------ 已启动生成: 项目: 测试, 配置: Debug Win32 ------
1>正在编译...
1>源2.cpp
1>d:\我的文档\visual studio 2005\projects\源2.cpp(19) : error C2182: “cmp”: 非法使用“void”类型
1>d:\我的文档\visual studio 2005\projects\源2.cpp(19) : error C2365: “cmp”: 重定义;以前的定义是“函数”
1>        d:\我的文档\visual studio 2005\projects\源2.cpp(6) : 参见“cmp”的声明
1>d:\我的文档\visual studio 2005\projects\源2.cpp(19) : error C2078: 初始值设定项太多
1>d:\我的文档\visual studio 2005\projects\源2.cpp(20) : error C2182: “print”: 非法使用“void”类型
1>d:\我的文档\visual studio 2005\projects\源2.cpp(20) : error C2365: “print”: 重定义;以前的定义是“函数”
1>        d:\我的文档\visual studio 2005\projects\源2.cpp(7) : 参见“print”的声明
1>d:\我的文档\visual studio 2005\projects\源2.cpp(20) : error C2078: 初始值设定项太多
1>生成日志保存在“file://d:\我的文档\Visual Studio 2005\Projects\测试\测试\Debug\BuildLog.htm”
1>测试 - 6 个错误,0 个警告
========== 生成: 0 已成功, 1 已
1 回复
#2
dhyco2011-11-14 13:16
#include<iostream>
#include< string>
  using namespace std;

int main()
{ void cmp (char *name[],int n );
  void print (char *name[],int n );

   // 改为:
void cmp (char name[],int n );
void print (char name[],int n );


   
    char *name[5];
//改为:
char name[5];
int i ;

for(i=0;i<5;i++  )
{cout<<"input"<<i+1;
cin>>name[i];

}

void cmp(name ,5  );
void print(name,5 );


//改为
cmp(name ,5  );
print(name,5 );

}

void cmp (char  * name[],int n )
//改为:
void cmp (char  name[],int n )
{ char *temp;
//改为:
char temp;
int i,j,k;
for( i=0;i<n-1;i++ )
{k=i;
for(j=i+1;j<n-1;j++)
  if((strcmp(name[k],name[j]))>0 )
      k=j;
if(k!=i)
{temp = name[i] ;  name[i]=name[k];name[k]=temp;       }
}
}

void  print(char * name[],int n )
//改为:
void  print(char name[],int n )
{ int i;
   
for(i=0; i<n;i++  )
     cout<<name[i]<<endl;
      
}
1