首页 > 解决方案 > 计算机尝试猜测C中的用户号

问题描述

我做了一个程序来猜测用户号。我错过了我的代码中的某些内容,但我不知道是什么。如果我给输入 b(更大)或 s(更低),它仍然给我相同的结果。你能告诉我我应该在代码中添加什么才能正常工作吗?

#include <stdio.h>
#include <ctype.h>

int main(void) 
{
  char answer, input;
  int untere_grenze=1, upper_limit=999, tipp=0, try1=0;

  printf("\n\nThis program tries to guess a number you choose between 1 and 999\n\n");
  do
  {
    try1=0;
    do
    {
      //I think here is my problem

      try1+=1;
      tipp=untere_grenze+(upper_limit-untere_grenze)/2;

      printf("\n%d. try: %d\n", try1, tipp);

      upper_limit=tipp-1;
      untere_grenze=tipp+1;

      //I think here is my problem


      do
      {
        printf("Please enter s (number to be guessed is smaller), b (number to be guessed is larger) or = (guess!):");
        scanf(" %c", &input);
        input=toupper(input);
      } while (input!='S' && input!='B' && input!='=');


    } while(input!='=');

    printf("\n\nThe computer guessed your number in %d attempts.\n\n", try1);
    do
    {
      printf("Do you want to run the program again (J/N)?\n\n");
      scanf(" %c", &answer); 
      answer=toupper(answer);
    } while (answer!='J' && answer!='N');
  }  while (answer=='J');

  return 0;
}

标签: c

解决方案


我没有看到你的程序对输入做任何事情。您应该根据输入在下一次迭代中猜测更低或更高。


推荐阅读