虽然循环不按预期工作。代码未完全执行

时间:2016-04-03 12:30:16

标签: c

我已经开始了C编程课程,我必须构建一个程序来计算你输入的字符。它应该计算A-Z,0-9,a-z。我制作了这个程序,如下所示和附加的截图,但我无法输入多个字符。 正如你所看到的那样,我首先尝试使循环转到数字,但在第一次输入后它将不会转到下一个'scanf'。

https://i.gyazo.com/5fcc0d90688f2e27970506fd999a2c4b.png

#include <stdio.h>

int main()
{
char input;
int contorMAJ = 0, contorMIN = 0 , contorNR =0;

printf("Type a character(0-9,a-z,A-Z): ");
scanf("%c",&input);




while(input>=48 && input<=57 || input >= 65 && input <= 90 || input >= 97 && input <= 122 )
{
    if(input>=48 && input<=57)
    {
        printf("Type another character(0-9,a-z,A-Z): ");
        contorNR++;
        scanf("%c",&input);
    }

}


return 0;
}

2 个答案:

答案 0 :(得分:2)

你在while循环中有一个return语句。它应该在while循环下吗?你只能通过循环一次。

答案 1 :(得分:0)

试试此代码

    #include <stdio.h>
   //#include<conio.h>
   int main()
    {


      char input,x;
      int contorMAJ = 0, contorMIN = 0 , contorNR =0;

      printf("Type a character(0-9,a-z,A-Z): ");
      //scanf("%c",&input);
      input=getchar();



      while(input>=48 && input<=57 || input >= 65 && input <= 90 || input >= 97 && input <= 122 )
      {

        getchar();
      // scanf("%c",&x);
       if(input>=48 && input<=57)
        {
          printf("Type another character(0-9,a-z,A-Z): ");

            contorNR++;

        }

        input=getchar();
       //scanf("%c",&input);


   }
   return 0;//`enter code here`
 }

更新了代码

错误就像这样

1-当您从键盘读取第一个字符并按enter \n时,将进入输入

2-与\n条件相符不满意

3-因此,在代码中更新后,再使用一个getchar()来获取\n