+ -
当前位置:首页 → 问答吧 → 求高手来看看并指出错误~~~~~~~~~~~~~~

求高手来看看并指出错误~~~~~~~~~~~~~~

时间:2011-12-04

来源:互联网

#include <iostream>
using   namespace   std;
char   str(char   a[],char   b[])
{
char*p=a;
char*q=b;
int   i=0,j=0;
while(*(p+i)!= '\0 '&&*(q+j)!= '\0 ')
{
if(*(p+i) <=*(q+j))
{
cout < <*(p+i);
i++;
}
else
{
cout < <*(q+j);
j++;
}
}
if(*(p+i)== '\0 '&&*(q+j)!= '\0 ')
{
for(;j <10;j++)
{
cout < <*(q+j);
}
}
else   if(*(p+i)!= '\0 '&&*(q+j)== '\0 ')
{
for(;i <10;i++)
{
cout < <*(p+i);
}
}
cout < <endl;
return   0;
}
int   main()
{
char   a[10],b[10];
cout < < "请输入第一个字符串: ";
for(int   i=0;i <10;i++)
{
cin> > a[i];

}
cout < < "请输入第二个字符串: ";
for(int   j=0;j <10;j++)
{
cin> > b[j];

}
str(a,b);
return   0;

}

作者: ljl0617   发布时间: 2011-12-04

程序是没有问题,问题在于,cin流读字符你停不下来

作者: qscool1987   发布时间: 2011-12-04

C/C++ code

#include <iostream>
using   namespace   std;
char   str(char   *a,char   *b)
{
char*p=a;
char*q=b;
int   i=0,j=0;
while(*(p+i)!= '\0 '&&*(q+j)!= '\0 '&& i != 10 && j != 10)
{
if(*(p+i) <=*(q+j))
{
cout <<*(p+i);
i++;
}
else
{
cout <<*(q+j);
j++;
}
}
if(*(p+i)== '\0 '&&*(q+j)!= '\0 ')
{
for(;j <10;j++)
{
cout <<*(q+j);
}
}
else   if(*(p+i)!= '\0 '&&*(q+j)== '\0 ')
{
for(;i <10;i++)
{
cout <<*(p+i);
}
}
cout <<endl;
return   0;
}
int   main()
{
char   a[10],b[10];
cout << "请输入第一个字符串: ";
for(int   i=0;i <10;i++)
{
cin>> a[i];

}
a[9] = '\0';
cin.clear();
cout << "请输入第二个字符串: ";
for(int   j=0;j <10;j++)
{
cin>> b[j];

}
cin.clear();
b[9] = '\0';
str(a,b);
return   0;

}

作者: qscool1987   发布时间: 2011-12-04