我的思维在跳跃 发表于 2015-3-4 14:19:27

while循环没看懂帮帮忙

各位大神~~~   帮帮忙。   这个程序的运行结果我看不懂啥意思。




   #include <stdio.h>

int main()
{
        int n = 0;
        printf("input a string:\n");

        while(getchar()!='\n');
        {
                n++;
        }
        printf("%d\n", n);

        return 0;
}


运行结果如下:

input a string:
asdfasdf               //这个是我随便输入的   
1          //    1是结果         我给改成 while(getchar()=='\n');    或 while(getchar()=='aaaa');   结果都是1
Press any key to continue

牡丹花下死做鬼 发表于 2015-3-4 15:06:33

#include <stdio.h>

int main()
{
        int n = 0;
        printf("input a string:\n");
       
        //while(getchar()!='\n');
        while(getchar()!='\n')
        {
                n++;
        }
        printf("%d\n", n);
       
        return 0;
}

freeparty 发表于 2015-3-4 19:22:35

牡丹花下死做鬼 发表于 2015-3-4 15:06


我怎么没看到不一样的。。。

ANDES 发表于 2015-3-4 19:45:21

freeparty 发表于 2015-3-4 19:22
我怎么没看到不一样的。。。

区别在while()后面的那个分号,好好看。

hfut_wangfei 发表于 2015-3-4 21:08:02

freeparty 发表于 2015-3-4 19:22
我怎么没看到不一样的。。。

后面的分号表示while循环语句的结束

freeparty 发表于 2015-3-4 22:13:55

ANDES 发表于 2015-3-4 19:45
区别在while()后面的那个分号,好好看。

谢谢

秀丽江山 发表于 2015-3-5 15:32:51

我也刚刚看这个。自己先写的,再看他的。
都一个效果。
#include<stdio.h>               
void main()
{
        int a=0;
        char c;
        puts("请输入一行字符");
               
        while(1)
                {       
                c=getchar();       
                if(c=='10')
                        break;
                else
                        a=a+1;
                }
        printf("此行字符长度为%d",a);
}

xiaoka3120 发表于 2015-3-7 10:29:06

很难发现啊,这种失误编译器还没法检测

我的思维在跳跃 发表于 2015-3-7 18:08:07

多谢各位大神帮忙

firewater 发表于 2015-3-7 22:36:20

小错误。。。

淘汰之刃 发表于 2015-3-9 19:31:53

哈哈,我也遇到过这种问题

gk-jsj 发表于 2015-3-10 00:09:04

这个是一个对输入字符的计数,你在while后多了一个逗号,相当于循环体是空语句而不是n++

namesoft 发表于 2015-3-10 08:39:25


while 循环后的!有问题

03111030 发表于 2015-3-10 17:01:21

区别在while()后面的那个分号,好好看。

零度非安全 发表于 2015-3-10 22:37:57

看来这也是对我的以后的一种提醒{:7_113:}
页: [1]
查看完整版本: while循环没看懂帮帮忙