当前位置: 代码迷 >> C语言 >> 疑惑的小问题,不难,语法方面的.
  详细解决方案

疑惑的小问题,不难,语法方面的.

热度:107   发布时间:2008-01-09 20:04:06.0
疑惑的小问题,不难,语法方面的.
#include "stdlib.h"
#include "stdio.h"
int main()
{
    int num;
    do
    {
        system("cls");
        printf("********************\n");
        printf("********************\n");
        scanf("%d",&num);
    }
    while(num>12||num<1);
    return num;
}

本来的意图是除了输入1-12之间,都返回重新输入,现在 如果输入错误的数字的话可以返回,如果输入字符的话就不行了,也清楚如果按照d的格式输入字符的话,就出现错误了,(原理到底是什么?麻烦解释下下.呵呵.)如何在这个基础上可以改正,效果是  只有1-12才跳出while,否则都while
搜索更多相关的解决方案: 语法  

----------------解决方案--------------------------------------------------------
不要用goto
----------------解决方案--------------------------------------------------------
/*这个可以*/
/*自己研究一下*/
#include "stdlib.h"
#include "stdio.h"
int main()
{
    int num;
    do
    {
        system("cls");
        printf("********************\n");
        printf("********************\n");
        scanf("%d",&num);
    }
    while(!(num<=12&&num>=1));
    return num;
}
----------------解决方案--------------------------------------------------------
我也遇到过像你同样的问题咯,也不知道是什么原因.
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]xianshizhe111[/underline][/bold] 于 2008-1-9 20:15 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1176292&ptid=196737][/url]
/*这个可以*/
/*自己研究一下*/
#include "stdlib.h"
#include "stdio.h"
int main()
{
    int num;
    do
    {
        system("cls");
        printf("********************\n");
        printf("*********** ...

输入字符也是出错,好像没有区别。
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
我试了一下,也不可以呀.
----------------解决方案--------------------------------------------------------
他最后的规则是输入1 到 12 退出循环
输入其它 再重新输入
TC++ 3.0
(我已验证 VC++ 6.0)不通过
看来不得不(小鄙视一下VC++)了

[[italic] 本帖最后由 xianshizhe111 于 2008-1-10 12:59 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
3楼大哥的不行哦,我自己也想到了这种方法..
但是如果你输入了字符或者其他的东西,屏幕就不停的刷新,还是不行.
----------------解决方案--------------------------------------------------------
是不同编译器的问题。cfree下会死循环,tc下正常,dev-c++也正常。不知搂主用什么编译器了。。
----------------解决方案--------------------------------------------------------
vc6.0
----------------解决方案--------------------------------------------------------
  相关解决方案