Ошибка в программе дополнительной тренировки - PullRequest
0 голосов
/ 13 августа 2010

Это дополнительная программа тренировки с ошибкой, которую я не могу исправить. Я не могу ввести символы Y / N в программу, пожалуйста, помогите мне, чтобы исправить это.

#include <conio.h>
#include <stdio.h>

main()
{
 int answer, count;
 int ch;
 ch = getche();

 for(count=1; count<11; count++) {
  printf("What is %d + %d? ", count, count);
  scanf("%d", &answer);
  if(answer == count + count) printf("Right!\n");
  else{
   printf("Sorry, you're wrong\n");
   printf("Would you like to try again? Y/N: \n");
   scanf("%c", &ch);

   if(ch=='Y') {
    printf("\nWhat is %d + %d? ", count, count);
    scanf("%d", &answer);
    if(answer == count+count) printf("Right!\n");
    else
     printf("Wrong, the answer is %d\n", count+count);
    }

   else
    printf("The answer is %d\n", count+count);
   }
  }
  return 0;
 }

Ответы [ 2 ]

1 голос
/ 14 августа 2010
scanf("%c", &ch); /* ch should be a char not an int ! */

Другая проблема должна быть scanf ("% c"): есть проблема с буферизацией, после этого необходимо очистить буфер ввода.

0 голосов
/ 13 августа 2010
  else{ <<<< I think this might be the issue... Everything is within this else ... maybe try to minimize nesting?
   printf("Sorry, you're wrong\n"); 
   printf("Would you like to try again? Y/N: \n"); 
   scanf("%c", &ch); 

   if(ch=='Y') { 
    printf("\nWhat is %d + %d? ", count, count); 
    scanf("%d", &answer); 
    if(answer == count+count) printf("Right!\n"); 
    else 
     printf("Wrong, the answer is %d\n", count+count); 
    } 

   else 
    printf("The answer is %d\n", count+count); 
   } <<<<< I think this might be the issue... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...