| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 708 人关注过本帖
标题:来论坛 两天 了 学编程 C 八天了 由于问题 ~诶 ~
只看楼主 加入收藏
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:22 
来论坛 两天 了 学编程 C 八天了 由于问题 ~诶 ~
#include<stdio.h>
void main()
{
    int a;  // 这两种 下面一种可以 实现 输入 Y或y结束循环 但是为什么上面一种不行呢? else 没错的啊
    char b;
    do
    {
        a=1;
        printf("ok?\n");
        scanf("%c",&b);
        if(b=='Y'||b=='y') a=1;
        else a=0;
    }
        while(a==1);
    printf("bey~");
}
        

#include<stdio.h>
void main()
{
    int a;
    char b;
    do
    {
        a=1;
        printf("ok?\n");
        scanf("%c",&b);
        if(b=='Y'||b=='y') a=1;
    }
        while(a==1);
    printf("bey~");
}
搜索更多相关主题的帖子: 学编程 
2011-08-16 17:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
while()中表达式成立时,循环将继续,你复习一下while()循环的用法。已经按下Y或y,此时a=1,那么你正好令a==1时循环,不是跳出。一步一步自己运行程序,我说过无数次的。

授人以渔,不授人以鱼。
2011-08-16 17:26
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
收藏
得分:0 
一步一步执行~?怎么做啊~?

不是很好么..比起关在笼子里的可怜小鸟..我成为乌鸦已足矣
2011-08-16 17:29
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a=1;
    char b;
    do
    {
        printf("ok?\n");
        scanf("%c",&b);
        if(b=='Y'||b=='y') a=0; else a=1;//这 我输入 Y a=0 到循环结束 再次循环 ~然后 便不输入了?~这就是问题 先打错了 ~
    }
        while(a==0);
    printf("bey~");
}

不是很好么..比起关在笼子里的可怜小鸟..我成为乌鸦已足矣
2011-08-16 17:47
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a;
    char b;
    do
    {
        printf("ok?\n");
        scanf("%c",&b);
        if(b=='Y'||b=='y') a=0//这个地方 他会跳过 第二次循环时的输入 为什么啊?·我就是这不懂; else a=1;
    }
        while(a==0);
    printf("bey~");
}

不是很好么..比起关在笼子里的可怜小鸟..我成为乌鸦已足矣
2011-08-16 17:56
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
收藏
得分:0 
完全想不通 TonyDeng 就靠你啦 大哥 ~

不是很好么..比起关在笼子里的可怜小鸟..我成为乌鸦已足矣
2011-08-16 18:13
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
把b的ASCII输出看看。

My life is brilliant
2011-08-16 18:22
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 6楼 小偌
'\n'还在缓冲区里面,用完scanf后加上一个getchar();

My life is brilliant
2011-08-16 18:23
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
或着把代码改成这样吧:
程序代码:
#include <stdio.h>
#define ISYy    0
#define NOTYy   1

int main(void) {
    int  check;
    char szbuf[2];

    do {
        printf("ok?\n");
        gets(szbuf);
        if(szbuf[0] == 'Y' || szbuf[0] == 'y')
            check = ISYy;
        else
            check = NOTYy;
    } while(check == ISYy);
    return 0;
}

My life is brilliant
2011-08-16 18:36
小偌
Rank: 4
来 自:成都
等 级:业余侠客
帖 子:170
专家分:241
注 册:2011-8-15
收藏
得分:0 
#include<stdio.h>
void main()
{ int i,a;
     i=xxx();
    printf("i =%d\n",i);
     scanf("%d",&a);
}

int xxx(int i)
{
    scanf("%d",&i);
    return (i);

}
return  明白了 哈哈

不是很好么..比起关在笼子里的可怜小鸟..我成为乌鸦已足矣
2011-08-16 18:44
快速回复:来论坛 两天 了 学编程 C 八天了 由于问题 ~诶 ~
数据加载中...
 
   



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

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