c++程序求解错误在哪?

#include<iostream>#include<cstring>usingnamespacestd;constSIZE=100;intguolv(charinput... #include<iostream>
#include<cstring>
using namespace std;
const SIZE=100;

int guolv(char input[],int a,char mid[]);
int exchange(char exchange[],int a);

int guolv(char input[],int a,char mid[]){int i,j;
j=0;
for(i=0;i<=a;i++){
if((input[i]<='z'&&input[i]>='a')||(input[i]<='Z'&&input[i]>='A'))
mid[j]=input[i];j++;
return j;
}}
int exchange(char exchange[],int a){
int i;
for(i=0;i<=a;i++){
if( exchange[i]<='Z'&&exchange[i]>='A')exchange[i]-=32;
return 0;
}}

void main(){
char carray[SIZE];char Mid[SIZE];
int i,len,is_palindrome=1;
int j;
cout<<"Please input a string:\n";
cin.get(carray,SIZE);
len=strlen(carrray);
j=guolv(carray[SIZE],len,Mid[SIZE]);
exchange(Mid[SIZE],j);

for(i=0;i<len/2;i++){
if(carray[i]!=carray[len-1-i]){
is_palindrome=0;
break;}
}
if(is_palindrome)cout<<"the string is a palingrome\n";
else cout<<"the string is not a palindrome\n";
return 0;}
展开
 我来答
d5378295
2012-05-24 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:38万
展开全部
SIZE的定义缺少类型
2个函数的定义逻辑上有问题 会抛出越界的异常 for()语句的地方 楼主可以看下
自己编写的函数调用有问题 guolv()参数是数组地址 而不是数组元素(楼主的写法不仅越界而且还是数组元素的传递)
主函数的没有返回值
我贴了一个代码在下面 楼主可以看下 可以的话楼主的编码风格改一下 可能更符合C++
#include<iostream>
#include<cstring>
using namespace std;
const int SIZE=100;

int guolv(char input[],int a,char mid[]);
int exchange(char exchange[],int a);

int guolv(char input[],int a,char mid[]){int i,j;
j=0;
for(i=0;i<a;i++)
{
if((input[i]<='z'&&input[i]>='a')||(input[i]<='Z'&&input[i]>='A'))
mid[j]=input[i];j++;
return j;
}
}
int exchange(char exchange[],int a)
{
int i;
for(i=0;i<a;i++)
{
if( exchange[i]<='Z'&&exchange[i]>='A')exchange[i]-=32;
return 0;
}
}

void main()
{
char carray[SIZE];char Mid[SIZE];
int i,len,is_palindrome=1;
int j;
cout<<"Please input a string:\n";
cin.get(carray,SIZE);
len=strlen(carray);
j=guolv(carray,len,Mid);
exchange(Mid,j);

for(i=0;i<len/2;i++)
{
if(carray[i]!=carray[len-1-i])
{
is_palindrome=0;
break;
}
}
if(is_palindrome)cout<<"the string is a palindrome\n";
else cout<<"the string is not a palindrome\n";
}
金山毒霸
2024-10-31 广告
电脑在启动游戏或软件的时候,桌面弹出错误提示框“0xc0000094”,应该怎么办?电脑报错,很大可能是因为某些DLL文件出现了异常,比如感染了病毒、DLL文件丢失等。解决方法如下:一、 手动解决方法1、先确定电脑操作系统是多少位的,现在的... 点击进入详情页
本回答由金山毒霸提供
百度网友2f81dd6
2012-05-24 · TA获得超过856个赞
知道小有建树答主
回答量:475
采纳率:0%
帮助的人:319万
展开全部
#include<iostream>
#include<cstring>
using namespace std;
const SIZE=100;

int guolv(char input[],int a,char mid[]);
int exchange(char exchange[],int a);

int guolv(char input[],int a,char mid[])
{int i,j;
j=0;
for(i=0;i<=a;i++)
{
if((input[i]<='z'&&input[i]>='a')||(input[i]<='Z'&&input[i]>='A'))
mid[j]=input[i];j++;
return j;
}
}
int exchange(char exchange[],int a){
int i;
for(i=0;i<=a;i++){
if( exchange[i]<='Z'&&exchange[i]>='A')exchange[i]-=32;
return 0;
}}

void main(){
char carray[SIZE];char Mid[SIZE];
int i,len,is_palindrome=1;
int j;
cout<<"Please input a string:\n";
cin.get(carray,SIZE);
len=strlen(carray);//carray,多打了一个r
j=guolv(carray,len,Mid);//去掉[size],不然就把carry[100]那个值带入了
exchange(Mid,j);//同上

for(i=0;i<len/2;i++){
if(carray[i]!=carray[len-1-i]){
is_palindrome=0;
break;}
}
if(is_palindrome)cout<<"the string is a palingrome\n";
else cout<<"the string is not a palindrome\n";
}//void 没有返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白日梦848
2012-05-24
知道答主
回答量:22
采纳率:0%
帮助的人:14.3万
展开全部
if(is_palindrome)cout<<"the string is a palingrome\n";
else cout<<"the string is not a palindrome\n";
return 0;}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式