Не могу придумать алгоритм
Нужно написать программу на языке С, не могу придумать алгоритм. Помогите пожалуйста :)
Программа следующая: пользователь вводит дату рождения (день, месяц, год) программа показывает кто он по знаку зодиака и в какой год он родился (например год свиньи). Конкретно не пойму как можно определить знак зодиака? Месяц записывается в одну переменную, день в другую. В зависимости от введенного месяца, смотрится значение второй переменной и в зависимости от того в каком интервале он находится, программа выдает соотв. сообщение. Но мы сейчас проходим массивы и я так подозреваю, что они тоже должны быть задействованы. Можно ли это как-то реализовать с помощью массивов ? Спасибо заранее. |
ну можно год дату и месяц например ввести в массив)
а там уже проверять куда попадет ячейка... но это будет нормально если у вас много пользователей и вы вбиваете для каждого... а так достаточно просто переменных... ну а проверка там та, которую вы написали... |
Раз обязательно нужны массивы, можно в них занести знаки зодиака и названия годов, потом проверять соответствие. К примеру, год можно определить путём вычисления остатка от деления разности введенного и эталонного значения на 12. За эталонное значение можно принять любой определенный год, название которого вам известно. Сам остаток от деления и будет индексом для элемента массива.
Для определения знака зодиака вам нужно ввести выбор из 12 вариантов. Дело в том, что для каждого знака периоды охватывают 2 месяца и нужно проверять попадание в них введенной даты. Каждый из вариантов выбора даст вам индекс для элемента массива знаков зодиака. В конце вам останется только вывести все полученные значения. |
Вот, нарисовал некий алгоритм насчет Зодиака. Реализация (увы) - на Паскале, но, думаю, перевести в СИ несложно. Здесь применяются латинские названия Знаков:
Aries - Овен Taurus - Телец Gemini - Близнецы Cancer - Рак Leo - Лев Virgo - Дева Libra - Весы Scorpio - Скорпион Saggitarius - Стрелец Capricorn - Козерог Aquarius - Водолей Pisces - Рыбы Код:
VAR |
Еще в свое время для себя сделал программку по восточному календарю. Сейчас малость "причесал": убрал кириллицу (DOS) и годы до н.э. (у меня учитываются и такие). К сожалению, опять же Паскаль.
Код:
CONST |
Спасибо всем большое )
|
Vladimir_S, не подскажите, а можно ли в языке Си сделать массив строк ? Как у вас во втором примере ? Ведь в Си строка - это массив символов.
|
Цитата:
Между прочим, в Паскале строка тоже ни что иное, как массив символов. |
Можно сделать массив строк в Cи, например вот так:
const string Str1[4] = {"Sc","Cs","Df","Hd"}; или string Str[10]; Str[0]="aaaa"; Только нужно будет подключать string.h... P.S.: в наиболее ранних версиях Си нет string, только char :) А в более поздних помимо string, появился и AnsiString... |
KiD2, попробовал твои варианты - выдает ошибку. Значит Си старый ? String.h подключил.
|
Часовой пояс GMT +4, время: 03:55. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.