| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1055 人关注过本帖
标题:输入几个字符串 判断是否是回文的问题、代码自己写的 不知道怎么修改了
只看楼主 加入收藏
a877650002
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:43
专家分:47
注 册:2013-3-17
结帖率:100%
收藏
已结贴  问题点数:14 回复次数:7 
输入几个字符串 判断是否是回文的问题、代码自己写的 不知道怎么修改了
图片附件: 游客没有浏览图片的权限,请 登录注册


代码是
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n;
    char a[1000];
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        n=strlen(a);
        for(int j=0;j<n/2;j++)
        {
            if(a[j]==a[n-j-1])
            {
                cout<<"YES"<<endl;break;
            }
            else
            cout<<"NO"<<endl;break;
        }
    }
      
    return 0;
}


给我看看怎么改好一点?
搜索更多相关主题的帖子: 字符串 include 
2013-03-30 17:07
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
把cout 移到外循环,break用的也不对

当前字符相等时,应该继续检测下一组,而不是跳出循环

你可以加一个flag标志,相等就置 1,不等就置 0并跳出循环(后面不必再检测),检测完后再依据flag值输出


[fly]存在即是合理[/fly]
2013-03-30 17:22
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
写完了自己不调试吗?

总有那身价贱的人给作业贴回复完整的代码
2013-03-30 17:31
逆水寒刘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:76
专家分:117
注 册:2013-3-27
收藏
得分:0 
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n;
    char a[1000];
        cin>>a;
        n=strlen(a);
        for(int j=0;j<n/2;j++)
        if(a[j]!=a[n-j-1])
        {
            cout<<"NO"<<endl;
            break;
        }
        if(a[j]==a[n-j-1])
            cout<<"YES"<<endl;
        return 0;
}
/*具体错误参见二楼,这是我修改的*/
2013-03-30 17:51
a877650002
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:43
专家分:47
注 册:2013-3-17
收藏
得分:0 
回复 3楼 embed_xuel
当然调试、但是怎么就整不好了、都正一下午了、
2013-03-30 18:06
a877650002
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:43
专家分:47
注 册:2013-3-17
收藏
得分:0 
回复 2楼 azzbcc
我又写了一个代码、编译对了、但是评测的时候还是不对、
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    long long n,k,f[100000];
    char a[1000];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        k=strlen(a);
         for(int j=0;j<k/2;j++)
        {
            if(a[j]==a[k-j-1])
            {
                f[i]=1;
            }
            else
            {
                f[i]=0;
            }
        }
     }  
     for(int i=0;i<n;i++)
     {
         if(f[i]==1)
         cout<<"YES"<<endl;
        else
        cout<<"NO"<<endl;
     }
    return 0;
}
2013-03-30 18:44
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:4 
以下是引用a877650002在2013-3-30 18:44:57的发言:

我又写了一个代码、编译对了、但是评测的时候还是不对、
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    long long n,k,f[100000];
    char a[1000];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        k=strlen(a);
         for(int j=0;j<k/2;j++)
        {
            if(a[j]==a[k-j-1])
            {
                f=1;
            }
            else
            {
                f=0;
            }
        }
     }  
     for(int i=0;i<n;i++)
     {
         if(f==1)
         cout<<"YES"<<endl;
        else
        cout<<"NO"<<endl;
     }
    return 0;
}

都说不相等要break了


[fly]存在即是合理[/fly]
2013-03-30 19:16
a877650002
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:43
专家分:47
注 册:2013-3-17
收藏
得分:0 
回复 7楼 azzbcc
明白了  明白了 、谢谢啊
2013-03-30 19:40
快速回复:输入几个字符串 判断是否是回文的问题、代码自己写的 不知道怎么修改 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076830 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved