bluesky5210 发表于 2015-3-25 22:31:52

编程小白求助

#include <STDIO.H>
int main()
{
        char ch;
      do
        {
                printf("是否继续定位?(y or n ):");
                scanf("%c",&ch);
                getchar();
                ch=getchar();
        } while(ch!='y');
        return 0;
}
如何实现输入字母y后继续执行循环,输入字母n就退出循环,输入其他的就提示输入错误?

秀丽江山 发表于 2015-3-25 22:39:25

#include <stdio.h>
int main()
{
        char ch;
        do
        {
                printf("是否继续定位?(y or n ):\n");
                scanf("%c",&ch);
                getchar();
                if(ch!='y'&&ch!='n')
                        printf("enoor\n");
        }while(ch!='y');

        return 0;
}

秀丽江山 发表于 2015-3-25 22:43:57

我去。搞错。。你自己错了把我都绕进去!!!
}while(ch!='y');这里要改成ch!='n';
因为不是n继续循环,这里理解   :ch != n; 若输入不是n的,判断为真,于是继续循环。是n,判断为假,退出循环。

秀丽江山 发表于 2015-3-25 22:45:00

嗯??248天签到的编程新手??
特么逗我玩呢?

bluesky5210 发表于 2015-3-25 23:23:19

秀丽江山 发表于 2015-3-25 22:45
嗯??248天签到的编程新手??
特么逗我玩呢?

首先感谢小伙的帮忙!谢谢了。每天来鱼C也就是签到+随便看看,一开始学小甲鱼的汇编教程,然后又看了delphi视频+OD系列的,然后就去玩crack的,发现学习逆向的最终目的应该是更好的编程,所以去看了Nisy的C教程,发现不懂得很多,但又急于求成,很多看了只是看了,根本没学进去,感觉脑袋不好使,逻辑思维不行

仰望天上的光 发表于 2015-3-26 09:32:00

#include <stdio.h>

void get_input( char* pc );
int main(void) {
        char input;
        //如果输入为n就停止
        while( !(get_input( &input ) , input == 'n') )
                if( input != 'y' ) printf("error\n");
}

void get_input( char* pc ) {
        printf("是否继续定位?(y or n ):\n");
    scanf("%c",pc);
    getchar();
}

逻辑混乱主要是因为C语言语句的表达能力很弱,当你学会写函数的时候,就可以通过函数名来增强C语言的表达能力(也就是说一个函数通过它的名字来说明要干什么,只要一句函数调用就能完成很多功能)
页: [1]
查看完整版本: 编程小白求助