Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 而循环未按预期工作。代码未完全执行_C - Fatal编程技术网

C 而循环未按预期工作。代码未完全执行

C 而循环未按预期工作。代码未完全执行,c,C,我已经开始了一门C编程的课程,我必须建立一个计算你输入的字符数的程序。应该是A-Z,0-9,A-Z。我制作了这个程序,如下图和所附的屏幕截图所示,但我无法键入多个字符。 正如您所见,我首先尝试使循环转到数字,但在第一次输入之后,它将不会转到下一个“scanf” #包括 int main() { 字符输入; int contorMAJ=0,contorMIN=0,contorNR=0; printf(“键入字符(0-9,a-z,a-z):”; scanf(“%c”,&input); while(

我已经开始了一门C编程的课程,我必须建立一个计算你输入的字符数的程序。应该是A-Z,0-9,A-Z。我制作了这个程序,如下图和所附的屏幕截图所示,但我无法键入多个字符。 正如您所见,我首先尝试使循环转到数字,但在第一次输入之后,它将不会转到下一个“scanf”

#包括
int main()
{
字符输入;
int contorMAJ=0,contorMIN=0,contorNR=0;
printf(“键入字符(0-9,a-z,a-z):”;
scanf(“%c”,&input);

while(input>=48&&input=65&&input=97&&input=48&&input您在while循环中有一个return语句。它应该在while循环下吗?您将只通过循环一次。

尝试此代码

    #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`
 }
#包括
//#包括
int main()
{
字符输入,x;
int contorMAJ=0,contorMIN=0,contorNR=0;
printf(“键入字符(0-9,a-z,a-z):”;
//scanf(“%c”,&input);
input=getchar();

当(input>=48&&input=65&&input=97&&input=48&&inputIn)添加到nicomp答案中提到的
return
语句中时,字符扫描将包括新行字符(ASCII代码为10),这将使您在键入2+Enter后的控制条件变为错误。调试器…………是的,我太笨了。更新代码@CodreanuGeorge有时所需的只是另一双眼睛。我认为这是编程的一部分。您的代码工作得很好。但是如果我可以问您,当\n进入输入时,它会改变吗变量的值?我真的不明白为什么它不符合条件。我尝试了一个快速测试,输入2作为字符,当我显示为整数时,它仍然是50(2的ascii码)。当您第一次在
输入中读取字符并按enter键时,…当您按
输入键时,
输入变量包含
\n
…当
输入
包含
\n
时,while循环中的条件将失败…程序将第一次移出for
循环
…它给出了如下权利:您已经在示例中给出了…但是在循环中,流运行得很快…这就是为什么
\n
下次进入
输入。
    #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`
 }