首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

while 循环有关问题

2013-08-09 
while 循环问题/* lesser.c -- finds the lesser of two evils */#include stdio.hint imin(int, int)i

while 循环问题

/* lesser.c -- finds the lesser of two evils */
#include <stdio.h>
int imin(int, int);

int main(void)
{
    int evil1, evil2;

    printf("Enter a pair of integers (q to quit):\n");
    while (scanf("%d %d", &evil1, &evil2) == 2)
    {
        printf("The lesser of %d and %d is %d.\n",
            evil1, evil2, imin(evil1,evil2));
        printf("Enter a pair of integers (q to quit):\n");
    }
    printf("Bye.\n");
  
    return 0;
}

int imin(int n,int m)
{
    int min;

    if (n < m)
        min = n;
    else
        min = m;
  
    return min;
}



#include <stdio.h>

int main()
{
   int i;
   printf("please enter a number\n");
   while(scanf("%d",&i)==1)
   
       printf("The number is :%d\n",i);
       
   return 0;
}


两段代码while部分为什么要输入几个数就等于几才能循环?
最大输入上限是多少,为什么?    求解!!!! C while
[解决办法]
 while (scanf("%d %d", &evil1, &evil2) == 2)表示scanf同时读入了两个变量值才为true,执行比较操作,如果只是接收到一个值,那么退出。

下面同理。
[解决办法]
scanf的返回值是表示成功接受了几个输入,比如scanf("%d", &evil1);如果你输入数字就返回1,输入字母就返回0.这样就可以输入,输入错误的时候又可以退出。


[解决办法]

while (scanf("%d %d", &evil1, &evil2) == 2)
scanf是有返回值的,
如果evil1和evil2都被成功读入,那么scanf的返回值就是2
如果只有evil1被成功读入,返回值为1
如果evil1和evil2都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型

所以只有你成功输入两个int型的值,while循环才能继续执行,否则退出
比如说输入2 S  或者 S S等等均会退出循环

while(scanf("%d",&i)==1)同理

[解决办法]
scanf returns the number of input items converted and assigned
[解决办法]

//标准输入接收了2个正确的输入值,然后在进入while循环体里进行循环的!
while (scanf("%d %d", &evil1, &evil2) == 2)
    {
        printf("The lesser of %d and %d is %d.\n",
            evil1, evil2, imin(evil1,evil2));
        printf("Enter a pair of integers (q to quit):\n");
    }

[解决办法]
scanf的返回值
输入的个数没有上限,除非栈溢出了。 
[解决办法]
看一下scanf的返回值你就知道了
[解决办法]
引用:
看一下scanf的返回值你就知道了

正解啊

热点排行