C++ 问题,请问下面的代码为什么编译没有错误,运行时编译器却报错?
#include<iostream>#include<string>#defineN3usingnamespacestd;classperson{charname[20]...
#include<iostream>
#include<string>
#define N 3
using namespace std;
class person
{
char name[20];
char num[20];
public:
void setname(char*na)
{
strcpy(name,na);
}
void setnum(char*nu)
{
strcpy(num,nu);
}
char* getname()
{
return name;
}
char* getnum()
{
return num;
}
};
class compute
{
person p[N];
public:
void getdata();
void getsort();
void outdata();
};
void compute::getdata()
{
int i;
char name[20],num[20];
cout<<"输入姓名3ge和电话号码:"<<endl;
for(i=0;i<N;i++)
{
cin>>name>>num;
p[i].setname(name);
p[i].setnum(num);
}
}
void compute::getsort()
{
int i,j,k;
person temp;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(strcmp(p[i].getname(),p[j].getname())>0)
{
temp=p[j];
p[j]=p[i];
p[i]=p[j];
}
}
int main()
{
compute obj;
obj.getdata();
obj.getsort();
obj.outdata();
return 0;
} 展开
#include<string>
#define N 3
using namespace std;
class person
{
char name[20];
char num[20];
public:
void setname(char*na)
{
strcpy(name,na);
}
void setnum(char*nu)
{
strcpy(num,nu);
}
char* getname()
{
return name;
}
char* getnum()
{
return num;
}
};
class compute
{
person p[N];
public:
void getdata();
void getsort();
void outdata();
};
void compute::getdata()
{
int i;
char name[20],num[20];
cout<<"输入姓名3ge和电话号码:"<<endl;
for(i=0;i<N;i++)
{
cin>>name>>num;
p[i].setname(name);
p[i].setnum(num);
}
}
void compute::getsort()
{
int i,j,k;
person temp;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(strcmp(p[i].getname(),p[j].getname())>0)
{
temp=p[j];
p[j]=p[i];
p[i]=p[j];
}
}
int main()
{
compute obj;
obj.getdata();
obj.getsort();
obj.outdata();
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询