2015-12-03 5 views
-3
#include <stdio.h> 
#include <stdlib.h> 

int randomNumber(int); 
void checkNumber(float,float); 
int main() 
{ 

    int number ,guess = 0,check=0; 
    char choice='Y'; 
    number = randomNumber(); 
    printf("%d\n",number); 

    while(1) 
    { 
     switch(choice) 
     { 
      case 'Y': 
       printf("Guess the number that is between 1-20:\n"); 
       scanf("%d",&guess); 
       checkNumber(number,guess); 
       break; 
      case 'N' 
       printf("BYE BYE....\n") 
       break; 
      default: 
      printf("Please enter a valid choice\n"); 
     } 
     if(check==0 && choice == 0 'Y') 
     { 
      printf("***********\nDo you want to contiune to guess number?(Y/N)\n"); 
      scanf("%c",&choice); 
      printf("***********\n"); 

     } 
     else break; 
    } 
    return 0; 
    int randomNumber() 
    { 
     return (rand()%10) 
    } 
} 

void checkNumber() 

if (n<g) 
{ 
    printf("Guess a lower value!\n\n"); 
    return 0; 
} 

else if (n<g) 
{ 
    printf("Guess a higher value!\n\n"); 
    return 0; 
} 
else 
{ 
    printf("****Cong.,You guessed the number ****\n\n"); 
    return 1; 
} 

программа, позволяющая пользователю угадать номер, который выбрала программа в качестве счастливого номера. Он использует один для цикла и множество операторов if, но есть некоторые логические или синтаксические ошибки. Я не смог решить проблему. Любая помощь приветствуется, спасибо заранее.Написал код, но есть ошибки

+3

'if (check == 0 && choice == 0 'Y')' ?????? это должно быть 'if (check == 0 && choice == 'Y')' – Himanshu

+0

Я не мог его протестировать, но, просто глядя на код, я вижу, что вам не хватает фигурных скобок вокруг вашего кода функции checkNumber и отсутствуют аргументы функции checkNumber (int n, int g) – pcagica

+0

'checkNumber()' функция, которую вы определили без параметров и даже не использовали скобки. – Himanshu

ответ

1

Синтаксис очень плохой, и он даже не компилируется. Я думаю, что это должно работать:

#include <stdio.h> 
#include <stdlib.h> 

int randomNumber(); 
int checkNumber(int,int); 
int main() 
{ 

    int number ,guess = 0,check=0; 
    char choice='Y'; 
    number = randomNumber(); 
    printf("%d\n",number); 

    while(1) 
    { 
     switch(choice) 
     { 
      case 'Y': 
       printf("Guess the number that is between 1-20:\n"); 
       scanf("%d",&guess); 
       checkNumber(number,guess); 
       break; 
      case 'N': 
       printf("BYE BYE....\n") 
       break; 
      default: 
       printf("Please enter a valid choice\n"); 
     } 
     if(check==0 && choice == 'Y') 
     { 
      printf("***********\nDo you want to continue to guess number?(Y/N)\n"); 
      scanf("%c",&choice); 
      printf("***********\n"); 

     } 
     else break; 
    } 
    return 0; 

} 
    int randomNumber(){ 

     return (rand()%10); 
    } 

    int checkNumber(int n, int g){ 

     if (n<g) 
     { 
      printf("Guess a lower value!\n\n"); 
      return 0; 
     } 

     else if (n>g) 
     { 
      printf("Guess a higher value\n\n"); 
      return 0; 
     } 
     else 
     { 
      printf("****Cong.,You guessed the number ****\n\n"); 
      return 1; 
     } 
    } 
+2

Вы не зафиксировали форвардные объявления: 'checkNumber' объявлен двумя аргументами' float', в то время как на самом деле он принимает два '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' не принимает никаких аргументов. – NiBZ

+0

Да, я уже исправил некоторые из того, что вы упомянули, а остальное только сейчас :) – Idos

+0

Видел, что;) Итак, мой комментарий теперь бессмысленен ^^ – NiBZ

-1

Ставит Е() (четвёртое STMT в основном) для отладки, я думаю. Если код работает сейчас, я полагаю, он не должен появляться среди неотвеченных вопросов.

Смежные вопросы