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;} 展开
#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;} 展开
3个回答
展开全部
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";
}
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 广告
2024-10-31 广告
电脑在启动游戏或软件的时候,桌面弹出错误提示框“0xc0000094”,应该怎么办?电脑报错,很大可能是因为某些DLL文件出现了异常,比如感染了病毒、DLL文件丢失等。解决方法如下:一、 手动解决方法1、先确定电脑操作系统是多少位的,现在的...
点击进入详情页
本回答由金山毒霸提供
展开全部
#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 没有返回值
#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 没有返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(is_palindrome)cout<<"the string is a palingrome\n";
else cout<<"the string is not a palindrome\n";
return 0;}}
else cout<<"the string is not a palindrome\n";
return 0;}}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询