Две функции. Выдает ошибку.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Программа не дописана и моя первая.
После ввода месяца рождения выдает ошибку
Run-Time Check Failure #3 — The variable 'L' is being used without being initialized.
Если пропустить дальше считает правильно.
Что не так?
Инициализируйте L
Как? Ладно, дочитаю Л. Джеса может пойму.
Посмотрите, на какую строку ругается рантайм и смотрите, почему в этом месте переменная L используется без предварительной инициализации.
так после ввода месяца рождения ты зачем то передаешь в L=LynaY(L) — то есть передаешь в функцию неинициализированное значение. Походу в этом и есть ошибка. Попробуй ничего не передавать.
Угу... всё верно говорите. Только в такой редакции программы в функцию
LunaY
передавать параметр не нужно: он там не используется. Соответственно из сигнатуры функции этот параметр надо убрать.Ещё несколько замечаний по программе.
(1) Функцию
setlocale
здесь достаточно вызвать один раз вmain
до первого оператора ввода-вывода на консоль.(2) Прототип функции
main
описывать не нужно.(3) В функции
LunaY
операторreturn
сработает только в одной ветке оператораif
. Что вернёт функция, если исполнение пойдёт по другой ветке, — знает только компилятор.(4) В функции
LunaY
циклdo-while
не нужен. Такую же функциональность имеет оператор%
.(5) Функция
LunaY
выделена логически неправильно. По большому счёту она вообще не нужна. Но уж если очень надо сделать функцию, то лучше так:PS. Я в лунных календарях не разбираюсь, поэтому в тонкости расчётов не вникал.