Взаимодействие с пользователем в C (scanf ()) - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно

  1. Чтобы спросить пользователя, хочет ли он использовать факториальную функцию или функцию Фибоначчи
  2. Чтобы задать ему значение.

Как это выглядит:

printf("choose option:\n1 - factorial\n2 - fibonacci sequence\n");
scanf("%d", &a);

if (a==1) {
  printf("enter a number:\n");
  scanf("%d", &x);
  return factorial(x); 
}

if (a==2) {
  printf("enter a number of sequence:\n");
  scanf("%d", &y);
  return fibonacci(y); 
}

Проблема: первая часть работает, а вторая - нет.Error: 'exit status 120'

Что не так?

1 Ответ

0 голосов
/ 07 февраля 2019
/*
For first,  variable 'a' should be declared as  integer:
*/
int a = 0;
/*
  Further, when you read keystrokes, you get ascii code of a character.
  Remember:'1' != 1
   Your 'if' statement should be different:
*/  
if (a == '1') {... }   /* note single quote characters around '1' and '2' */
else if (a == '2') {... }
else
{
   /* if user press something that is not '1' or '2' */
     printf("Wrong choice!\n");
     exit(1);
}
...