| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:求大神修改求回文数
只看楼主 加入收藏
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
结帖率:95.45%
收藏
 问题点数:0 回复次数:8 
求大神修改求回文数
程序代码:
#include "stdafx.h"
#include<stdio.h>
int main()
{
    int n,i;
    char a[20];
    printf("请输入一个单词:\n");
    scanf("%s",a);
    for(n=0;a[n]!='\0';n++);
    for(i=0;i<n/2,a[i]==a[n-1-i];i++)
          (n/2)--;
    if(n=0)
        printf("是回文数");
    else
        printf("不是回文数");

    return 0;
}
这个程序中第一个for中的n传不出来,怎么修改

[ 本帖最后由 诸葛欧阳 于 2014-11-15 18:32 编辑 ]
2014-11-15 17:17
冰蓝羽若
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2014-10-24
收藏
得分:0 
既然是回文数,为什么输入的是单词?
2014-11-15 18:16
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
刚把数组类型改了,其实是判断一个单词是否从前到后读与从后往前读一样

一片落叶掉进了回忆的流年。
2014-11-15 18:34
chen5656de
Rank: 2
等 级:论坛游民
帖 子:21
专家分:62
注 册:2014-4-14
收藏
得分:0 
修改后可以简单判断是不是回文数了
用字符串这种方法来输入判断真的好吗,为什么不直接用数来判断呢
程序代码:
//exercise 2-7
#include<stdio.h>
int main()
{
    char a[10];
    int n,i;
    printf("请输入一个数字:\n");
    scanf("%s",a);

    for(n=0;a[n]!='\0';n++)
        ;

    for(i=0;i<n/2&&a[i]==a[n-1-i];i++)
          ;

    if(i+1>n/2||i+1==n/2)
        printf("是回文数");
    else
        printf("不是回文数");

    return 0;
}


[ 本帖最后由 chen5656de 于 2014-11-15 18:49 编辑 ]
2014-11-15 18:41
chen5656de
Rank: 2
等 级:论坛游民
帖 子:21
专家分:62
注 册:2014-4-14
收藏
得分:0 
我怎么感觉你代码有很多错误啊
程序代码:
#include "stdafx.h" //这个没用啊
#include<stdio.h>
int main()
{
    int n,i;
    char a[20];
    printf("请输入一个单词:\n");
    scanf("%s",a);
    
    for(n=0;a[n]!='\0';n++);    //不习惯循环计数,还是边录入的时候边计数好
    
    //我感觉你这个for循环没用啊
    for(i=0;i<n/2,a[i]==a[n-1-i];i++)   //这里逗号表达式是个什么情况,没看懂,  改成i<n/2&&a[i]==a[n-1-i]  中间用逻辑与运算符,不然你的条件是白写的,
//逗号运算符的值只是最后一个表达式的值,前面的没用
          (n/2)--;      //你这个判断条件没看懂,是要表达个什么,而且不能对表达式进行自增和自减吧
    if(n=0)  //应该是双等号,不然永远为假
        printf("是回文数");
    else
        printf("不是回文数");

    return 0;
}


[ 本帖最后由 chen5656de 于 2014-11-15 19:49 编辑 ]
2014-11-15 18:46
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
谢谢,不过我的程序为什么不行?

一片落叶掉进了回忆的流年。
2014-11-15 18:51
chen5656de
Rank: 2
等 级:论坛游民
帖 子:21
专家分:62
注 册:2014-4-14
收藏
得分:0 
你想问哪里,你的for循环错了
你那个判断的逻辑是什么?
我表示一点没看懂

你最后是看n的值来判断是否是回文数
但是n的值在for循环中一直就没变化啊

[ 本帖最后由 chen5656de 于 2014-11-15 19:02 编辑 ]
2014-11-15 18:59
chen5656de
Rank: 2
等 级:论坛游民
帖 子:21
专家分:62
注 册:2014-4-14
收藏
得分:0 
居然没分,我的个心伤啊,我缺分分点分来呗
2014-11-15 19:04
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
收藏
得分:0 
你第一行代码有问题。
#include<stdio.h>

int main()
{
    char ch,a[20];
    int n=0,i,j;
    printf("请输入一个单词:\n");
    while((ch=getchar())!='\n')
    {
        a[n]=getchar();
        n++;
    }
    for(i=0,j=n-1; i<=(n-1)/2; i++,j--)
    {
        if(a[i]!=a[j])
            break;
    }
    if(i>j)
    {
        printf("是回文数");
    }
    else
    {
        printf("不是回文数");
    }

    return 0;
}
收到的鲜花
  • chen5656de2014-11-15 19:48 送鲜花  3朵  
2014-11-15 19:43
快速回复:求大神修改求回文数
数据加载中...
 
   



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

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