| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:初学c语言,程序运行起来有点问题,求指点
只看楼主 加入收藏
shadow丶
Rank: 1
等 级:新手上路
帖 子:10
专家分:9
注 册:2013-3-2
结帖率:0
收藏
 问题点数:0 回复次数:8 
初学c语言,程序运行起来有点问题,求指点
语言不知道哪里没有弄好,执行出来的程序他不会运行这一步、、
  c=getchar();

    }while('Y' || 'y');



程序源码:

# include <stdio.h>
# include <math.h>

int main()
{
    int x, y;
    char c;
    do
    {
        printf("请输入小于1000的正数:");
        scanf("%d", &x);
        
        if (x<1000)
        {
            y = sqrt(x);
            printf("%d\n", y);
        }
        else
            printf("输入错误,请重新输入:\n");
            
        printf("若要继续请输入Y,否则按任意键退出:");

        c=getchar();

    }while('Y' || 'y');


    return 0;
}

搜索更多相关主题的帖子: include 
2013-03-30 22:26
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:0 
回复 楼主 shadow丶
# include <stdio.h>
# include <math.h>

int main()
{
    int x;
    float  y;
    char c;
    do
    {
        printf("请输入小于1000的正数:");
        scanf("%d", &x);
        
        if (x<1000)
        {
            y = sqrt(x);
            printf("%f\n", y);
        }
        else
            printf("输入错误,请重新输入:\n");
            
        printf("若要继续请输入Y,否则按任意键退出:");
fflush(stdin);/*清除输入缓冲区,否则c读到的是换行符*/
        c=getchar();/*也可以在这里在加一条c=getchar();加上这一条就不需要使用fflush(stdin);了*/

    }while(c=='Y' || c=='y');


    return 0;
}
收到的鲜花
  • shadow丶2013-03-31 13:27 送鲜花  3朵   附言:我很赞同
2013-03-30 22:47
a877650002
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:43
专家分:47
注 册:2013-3-17
收藏
得分:0 
回复 2楼 helloUJS
清楚的缓存指的是前面输入的超过1000的数吗?
还有fflush(stdin);是固定的清楚缓存的代码吗?
还有两个c=getchar();c=getchar();是什么意思?
2013-03-30 22:59
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
以下是引用helloUJS在2013-3-30 22:47:23的发言:

# include  
# include  
 
int main()
{
    int x;
    float  y;
    char c;
    do
    {
        printf("请输入小于1000的正数:");
        scanf("%d", &x);
         
        if (x<1000)
        {
            y = sqrt(x);
            printf("%f\n", y);
        }
        else  
            printf("输入错误,请重新输入:\n");
            
        printf("若要继续请输入Y,否则按任意键退出:");
 fflush(stdin);/*清除输入缓冲区,否则c读到的是换行符*/
        c=getchar();/*也可以在这里在加一条c=getchar();加上这一条就不需要使用fflush(stdin);了*/
 
    }while(c=='Y' || c=='y');
 
 
    return 0;
}
恩,挺好的,

Maybe
2013-03-30 23:31
shadow丶
Rank: 1
等 级:新手上路
帖 子:10
专家分:9
注 册:2013-3-2
收藏
得分:0 
回复 2楼 helloUJS
虽然可以二次输出数据了、可是运行后当你输入除y的其他字符时,程序不会退出这是为什么?

运行结果:
请输入小于1000的正数:9
3
若要继续请输入Y,否则按任意键退出:r
请输入小于1000的正数:8
2
若要继续请输入Y,否则按任意键退出:
2013-03-31 10:02
shadow丶
Rank: 1
等 级:新手上路
帖 子:10
专家分:9
注 册:2013-3-2
收藏
得分:0 
回复 6楼 zyw61483
退出代码?
# include <stdio.h>
# include <math.h>

int main()
{
    int x, y;
    char c;
    do
    {
        printf("请输入小于1000的正数:");
        scanf("%d", &x);
        
        if (x<1000)
        {
            y = sqrt(x);
            printf("%d\n", y);
        }
        else
            printf("输入错误,请重新输入:\n");
            
        printf("若要继续请输入Y,否则按任意键退出:");

        fflush(stdin);/*清除输入缓冲区,否则c读到的是换行符*/

        c=getchar();/*也可以在这里在加一条c=getchar();加上这一条就不需要使用fflush(stdin);了*/



    }while(c=='Y' || c=='y');


    return 0;
}

改下、谢谢
2013-03-31 12:55
shadow丶
Rank: 1
等 级:新手上路
帖 子:10
专家分:9
注 册:2013-3-2
收藏
得分:0 
回复 2楼 helloUJS
谢了、 我懂了
2013-03-31 13:27
尹金魁2031
Rank: 3Rank: 3
来 自:河南省南阳市
等 级:论坛游侠
帖 子:156
专家分:162
注 册:2012-12-29
收藏
得分:0 
没分的帖子,下次要给分哟
2013-04-03 08:14
快速回复:初学c语言,程序运行起来有点问题,求指点
数据加载中...
 
   



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

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