新手的C++代码问题

yifeizhi_cxf 2009-03-25 09:34:49
请高手帮我看下下面的代码哪里出了问题,编绎没有错,但运行时会出现错误。
#include <iostream>
#include <cstring>
#define Max 100
using namespace std;
int main()
{
int i;
bool judge(char *,char *);
void exchange(char *,char *);
char a[Max],b[Max],c[Max];
gets(a);
gets(b);
gets(c);
if(judge(a,b)) exchange(a,b);
if(judge(a,c)) exchange(a,b);
if(judge(b,c)) exchange(a,b);
cout<<a[i]<<endl;
cout<<b[i]<<endl;
cout<<c[i]<<endl;
return 0;
}

bool judge(char *q1,char *q2)
{
int i;
for(i=0;i<=Max;i++)
{
return(*(q1+i)>*(q2+i)?true:false);
break;
}
}


void exchange(char *q1,char *q2)
{
int i;
char temp;
for(i=0;i<=Max;i++)
{
temp=*(q1+i);
*(q1+i)=*(q2+i);
*(q2+i)=temp;
if(*(q1+i)=='\0' && *(q2+i)=='\0') break;
}
}
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxw145 2009-03-25
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstring>
#define Max 100
using namespace std;
int main()
{
// int i;
bool judge(char *,char *);
void exchange(char *,char *);
char a[Max],b[Max],c[Max];
gets(a);
gets(b);
gets(c);
if(judge(a,b)) exchange(a,b);
if(judge(a,c)) exchange(a,c);
if(judge(b,c)) exchange(b,c);
cout << a << endl;
cout << b << endl;
cout << c << endl;
return 0;
}

bool judge(char *q1,char *q2)
{
int i;
for (i = 0; i < Max; ++i)
{
if (*(q1 + i) == *(q2 + i))
continue;
else if (*(q1 + i) > *(q2 + i))///
return true;
else
return false;
}
return true;
}


void exchange(char *q1,char *q2)
{
int i;
char temp;
for(i=0;i <=Max;i++)
{
temp=*(q1+i);
*(q1+i)=*(q2+i);
*(q2+i)=temp;
if(*(q1+i)=='\0' && *(q2+i)=='\0') break;
}
}
gxw145 2009-03-25
  • 打赏
  • 举报
回复
if(judge(a,b)) exchange(a,b);
if(judge(a,c)) exchange(a,c);
if(judge(b,c)) exchange(b,c);


注意下顺序
#include <iostream>
#include <cstring>
#define Max 100
using namespace std;
enum {FALSE, TRUE};
int main()
{
// int i;
bool judge(char *,char *);
void exchange(char *,char *);
char a[Max],b[Max],c[Max];
gets(a);
gets(b);
gets(c);
if(judge(a,b)) exchange(a,b);
if(judge(a,c)) exchange(a,c);
if(judge(b,c)) exchange(b,c);
cout << a << endl;
cout << b << endl;
cout << c << endl;
return 0;
}

bool judge(char *q1,char *q2)
{
int i;
for(i=0;i <=Max;i++)
{
return(*(q1+i)>*(q2+i)?true:false);
break;
}
return FALSE;
}

void exchange(char *q1,char *q2)
{
int i;
char temp;
for(i=0;i <=Max;i++)
{
temp=*(q1+i);
*(q1+i)=*(q2+i);
*(q2+i)=temp;
if(*(q1+i)=='\0' && *(q2+i)=='\0') break;
}
}
ydntlk 2009-03-25
  • 打赏
  • 举报
回复

#include <iostream>
#include <cstring>
#define Max 100
using namespace std;
int main()
{
int i;
bool judge(char *,char *);
void exchange(char *,char *);
char a[Max],b[Max],c[Max];
gets(a);
gets(b);
gets(c);
if(judge(a,b)) exchange(a,b);
if(judge(a,c)) exchange(a,c); // 你的参数写错了
if(judge(b,c)) exchange(b,c);
cout <<a <<endl; // 这样输出字符串,即使要输出第一个字符,也必须初始化i
cout <<b <<endl;
cout <<c <<endl;
return 0;
}

bool judge(char *q1,char *q2) // 这个函数这样写
{
int i;
for (i = 0; i < Max; ++i) {
if (*(q1 + i) == *(q2 + i))
continue;
else if (*(q1 + i) == *(q2 + i))
return true;
else
return false;
}
return true;
}


void exchange(char *q1,char *q2)
{
int i;
char temp;
for(i=0;i <Max;i++)
{
temp=*(q1+i);
*(q1+i)=*(q2+i);
*(q2+i)=temp;
}
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧