| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2889 人关注过本帖
标题:运行时为什么会直接跳过d=getchar();执行下一条语句?
取消只看楼主 加入收藏
continue24
Rank: 2
等 级:论坛游民
帖 子:38
专家分:96
注 册:2012-11-16
结帖率:80%
收藏
已结贴  问题点数:40 回复次数:0 
运行时为什么会直接跳过d=getchar();执行下一条语句?
题目描述
回文数:即反转后与本身相等的数,请编写一个程序求出区间内的回文数
PS:注意是开区间还是闭区间
输入
第一行为一个整数N,表示下面有N组测试数据
每组测试数据格式为[a,b]{a<=x<=b}或者(a,b){a<x<b}
输出
对于每组测试数据,输出该区间内有多少回文数
样例输入
2
[111,111]
(111,111)
样例输出
1
0
这道题我完全没有思路,不会输入[111,111]
                              (111,111)
在同学的指导下勉强写了一下,可是完全不对,运行时不知道为什么直接跳过了d=getchar();以下是我写的程序,大家帮忙看看,提点意见或者思路吧,谢谢!


#include<stdio.h>
#include<string.h>
int main()
{
    int a,b,g,i=0,sum=0,p,sune=0,s=0;//a和b是例子里的111和111,sum是用来记录比较了多少数组sum[]中的元素,sune是用来记录回文数个数的,s是用来控制输入的组数的//
    char d,k,min[500]={1,2};
    scanf("%d",&g);//输入组数//
    for(s=0;s<g;s++)
    {
        d=getchar();//输入“[”或者“(” 的//
        scanf("%d,%d",&a,&b);
         k=getchar();//输入“[”或者“(” 的,与上面的对应//
         p=a;
        if(d=='[')//判断是闭区间还是开区间//
        {
            while(a<=b)
            {
                while(p>0)
                {
                   min[i]=p%10;
                   p=p/10;
                   i++;
                }//将整数a分解后依次存入数组min中//
                for(i=0;i<strlen(min);i++)
                {
                    if(min[i]==min[strlen(min)-i])
                        sum++;
                    if(2*sum>=strlen(min))
                        sune++;
                }//判断是否为回文数//
                a++;
            }
        
            printf("%d",sune);
        }
        if(d=='(')
        {
            p++;
            while(a<b)
            {
                  while(a>0)
                  {
                    min[i]=p%10;
                    p=p/10;
                    i++;
                  }//将整数a分解后依次存入数组min中//
            
                  for(i=0;i<strlen(min);i++)
                  {
                    if(min[i]==min[strlen(min)-i])
                         sum++;
                    if(2*sum>=strlen(min))
                         sune++;
                  }//判断是否为回文数//
                a++;
        
            }
            printf("%d",sune);
        }
    }
    return 0;
        }
        
搜索更多相关主题的帖子: 测试 
2012-12-06 19:02
快速回复:运行时为什么会直接跳过d=getchar();执行下一条语句?
数据加载中...
 
   



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

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