| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:一个简单的程序 但是有些疑问,请大家帮忙看看
只看楼主 加入收藏
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
结帖率:25%
收藏
 问题点数:0 回复次数:3 
一个简单的程序 但是有些疑问,请大家帮忙看看
1.这个do..while循环为什么不管用?
2.带颜色的部分该成*(month++)为什么不行?
#include "stdio.h"
main()
{int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p,i,b;
 char m,*month[]={"January","February","March","April","May","june","july","August",
                 "September","October","November","December"};
 p=a;
 do{ printf("请输入月份:");
     scanf("%d",&b);
     if(b>12||b<1)
      {printf("输入错误!是否继续(y/n)?");
       scanf("%c",&m);}
     else
       for(i=0;i<12;i++)
           if(*p++==b)
              {printf("%d月的英文是%s",b,*(month+i));break;}
    }while(m=='y'||m=='Y');
}

[[italic] 本帖最后由 llp108 于 2007-12-29 22:27 编辑 [/italic]]
搜索更多相关主题的帖子: 疑问 month scanf 
2007-12-29 22:12
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
第二个问题明白了,大家看第一个吧
2007-12-29 22:18
jingru
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-16
收藏
得分:0 
因为输入数字的时候你按了回车, 后面scanf的时候会读到那个回车,do while判断也就成false了,
解决方法是,清一下缓冲区


       printf("请输入月份:");
            scanf("%d", &b);
    fflush(stdin);
            if (b > 12 || b < 1)
            {
                  printf("输入错误!是否继续(y/n)?");
                  scanf("%c", &m);
    fflush(stdin);
            
            }
2007-12-29 22:42
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
谢谢了
2007-12-29 23:00
快速回复:一个简单的程序 但是有些疑问,请大家帮忙看看
数据加载中...
 
   



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

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