![]() |
#2
honghong882011-11-14 19:31
#include<iostream>
#include< string> using namespace std; int main() { void cmp (char *,int n ); void print (char *,int n ); char name[5][30]; int i ; char (*p)[5]; p=name; for(i=0;i<5;i++ ) {cout<<"input"<<i+1; cin>>name[i]; } cmp(p ,5 ); print(p,5 ); } void cmp (char *p,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(*(p+i),(*p+j))>0 ) k=j; if(k!=i) {temp = *(p+i) ; *(p+i) = *(p+j) ; *(p+j) =temp; } } } void print(char * p,int n ) { int i; for(i=0; i<n;i++ ) cout<< *(p+i) <<endl; } 1>正在编译... 1>22.cpp 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(18) : error C2440: “=”: 无法从“char [5][30]”转换为“char (*)[5]” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(25) : error C2664: “cmp”: 不能将参数 1 从“char (*)[5]”转换为“char *” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(26) : error C2664: “print”: 不能将参数 1 从“char (*)[5]”转换为“char *” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(43) : error C2664: “strcmp”: 不能将参数 1 从“char”转换为“const char *” 1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(44) : error C2146: 语法错误 : 缺少“)”(在标识符“k”的前面) 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(46) : error C2440: “=”: 无法从“char”转换为“char *” 1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(46) : error C2440: “=”: 无法从“char *”转换为“char” 1> 没有使该转换得以执行的上下文 1>生成日志保存在“file://d:\我的文档\Visual Studio 2005\Projects\job\job\Debug\BuildLog.htm” 1>job - 7 个错误,0 个警告 ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ========== |
#include<iostream>
#include< string>
using namespace std;
int main()
{ void cmp (char (*name)[],int n );
void print (char (*name)[],int n );
char name[5][30];
int i ;
for(i=0;i<5;i++ )
{cout<<"input"<<i+1;
cin>>name[i];
}
cmp(name ,5 );
print(name,5 );
void cmp (char (* name)[30],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)[30],int n )
{ int i;
for(i=0; i<n;i++ )
cout<<name[i]<<endl;
}
1>------ 已启动生成: 项目: job, 配置: Debug Win32 ------
1>正在编译...
1>22.cpp
1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(24) : error C2664: “cmp”: 不能将参数 1 从“char [5][30]”转换为“char (*)[]”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(25) : error C2664: “print”: 不能将参数 1 从“char [5][30]”转换为“char (*)[]”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(45) : error C2106: “=”: 左操作数必须为左值
1>d:\我的文档\visual studio 2005\projects\job\job\22.cpp(45) : error C2440: “=”: 无法从“char *”转换为“char [30]”
1> 没有转换为数组类型,但有转换为数组的引用或指针