Моя цель - создать две функции, которые используют циклы while для: - PullRequest
0 голосов
/ 24 сентября 2019

a.) (Функция 1) принимает пользовательский ввод и уменьшает значение до тех пор, пока userNum = ноль

b.) (Функция 2) принимает исходный пользовательский ввод и имеет нулевое увеличение на +1 до достижения указанного пользователяinput.

поэтому вывод будет выглядеть так:

Пожалуйста, введите положительное целое число: 5 ( вводит 5 )

5

4

3

2

1

0

(четыре звездочки)

0

1

2

3

4

5

Моя проблема в том, что я не могу понять, какустановить исходный ввод для userNum на место, чтобы я мог все это в функции "loop_up_to_int".Буду признателен за любую помощь, спасибо.

#include <stdio.h>

int loop_down_to_zero(void);
int loop_up_to_int(void);

int main(int argc, char * argv[])
{
   int userNum;

   printf("Please enter a positive integer: ");
   scanf("%d", &userNum);
   //printf("%d\n", userNum);

   loop_down_to_zero();
   loop_up_to_int();

 return 0;  
}

//definitions here
int loop_down_to_zero() {

   //scanf("%d", &userNum);  do i scan for input here?
      while (userNum >= 0) {
         printf("%d\n", userNum);
         userNum = userNum - 1;
      }
   printf("****\n");
}

int loop_up_to_int() {

   int newNum;
   int userNum;

   newNum = 0;
   printf("%d\n", newNum);
      while (newNum != userNum)
      {
         newNum = newNum + 1;
         printf("%d\n", newNum);
      }
}

сообщение об ошибке:

daily08.c: 58: 14: ошибка: 'userNum' необъявлено (первое использование в этой функции) while (userNum> = 0) {

1 Ответ

2 голосов
/ 24 сентября 2019

Ваше сообщение об ошибке связано с тем, что userNum не существует в функции.Это только заявлено в основном.Передача значений является решением.

Вы можете передавать значения в функции (основная идея программирования; переменные не должны быть глобальными).Аналогично тому, как main имеет int в своем объявлении;обновите обе ваши функции, чтобы получить переменную:

 int loop_down_to_zero(int number)

Не забудьте также обновить определение функции поверх вашей программы.

И вы вызываете функцию, просто сказав loop_down_to_zero(userNum).То, что вы ввели, теперь доступно через номер в каждой функции, а userNum останется неизменным в main ().


Примечание: по завершении функций они могут вернуть значение обратно вызывающей стороне.В вашем случае вы этого не делаете (и вам не нужно).Обе ваши функции должны показать, что они ничего не возвращают, что отмечено с помощью void, т.е. void loop_down_to_zero(int number).Снова не забудьте обновить верхнюю часть вашей программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...