Известно, что астрологи делят год на 12 периодов и каждому из них ставят в соответствие один из знаков Зодиака:
20.1-18.2-водолей 23.7-22.8-лев
19.2-20.3-рыбы 23.8-22.8-дева
21.3-19.4-овен 23.9-22.10-весы
20.4-20.5-телец 23.10-22.11-скорпион
21.5-21.6-близнецы 23.11-21.12-стрелец
22.6-22.7-рак 22.12-19.1-козерог
Написать программу,которая по введенной дате некоторого дня года и печатает название соответствующего знака Зодиака.
Программа должна выводить имя,дату рождения и знак зодиака тестируемого на экран и в файл output.txt.
Другие языки программирования и технологии
Помогите написать программу на Си
// IDE Visual C++ 2010
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
void input();
void checkdate(int, int);
void print(char[], const char[], int, int);
void end();
const char * zodiac[] =
{
"",
" Козерог ",
" Водолей ",
" Рыбы ",
" Овен ",
" Телец ",
" Близнецы ",
" Рак ",
" Лев ",
" Дева ",
" Весы ",
" Скорпион ",
" Стрелец "
};
void main() { input(); }
void checkdate(int d, int m)
{
if ((d < 1 || d > 31) || (m == 2 && d > 29) || ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30) || (m < 1 || m > 12))
{
printf("\n Некорректные данные! \a");
printf("\n Программа будет закрыта! ");
printf("\n Приносим свои извинения. ");
end();
}
}
void end()
{
Sleep(3000);
exit(0);
}
void input()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
char name[20];
printf("\n Введите имя: ");
scanf("%s", name);
int day;
printf(" Введите день рождения: ");
scanf("%d", &day);
int month;
printf(" Введите месяц рождения: ");
scanf("%d", &month);
checkdate(day, month);
switch (month)
{
case 1:
if (day < 20) print(name, zodiac[1], day, month);
else print(name, zodiac[2], day, month); break;
case 2:
if (day < 19) print(name, zodiac[2], day, month);
else print(name, zodiac[3], day, month); break;
case 3:
if (day < 21) print(name, zodiac[3], day, month);
else print(name, zodiac[4], day, month); break;
case 4:
if (day < 20) print(name, zodiac[4], day, month);
else print(name, zodiac[5], day, month); break;
case 5:
if (day < 21) print(name, zodiac[5], day, month);
else print(name, zodiac[6], day, month); break;
case 6:
if (day < 22) print(name, zodiac[6], day, month);
else print(name, zodiac[7], day, month); break;
case 7:
if (day < 23) print(name, zodiac[7], day, month);
else print(name, zodiac[8], day, month); break;
case 8:
if (day < 23) print(name, zodiac[8], day, month);
else print(name, zodiac[9], day, month); break;
case 9:
if (day < 23) print(name, zodiac[9], day, month);
else print(name, zodiac[10], day, month); break;
case 10:
if (day < 23) print(name, zodiac[10], day, month);
else print(name, zodiac[11], day, month); break;
case 11:
if (day < 23) print(name, zodiac[11], day, month);
else print(name, zodiac[12], day, month); break;
case 12:
if (day < 22) print(name, zodiac[12], day, month);
else print(name, zodiac[1], day, month); break;
}
}
void print(char name[], const char sign[], int d, int m)
{
setlocale(LC_CTYPE, "English_United States.866");
printf("\n %s %d\/%d", name, d, m);
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf(" %s\n",sign);
FILE * f = fopen("output.txt", "a");
if (f == NULL)
{
printf("\n Невозможно создать файл! \a\n Приложение будет закрыто! ");
end();
}
else
{
fprintf(f, "%s%d%d%s", name, d, m, sign);
fclose(f);
main();
}
}
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
void input();
void checkdate(int, int);
void print(char[], const char[], int, int);
void end();
const char * zodiac[] =
{
"",
" Козерог ",
" Водолей ",
" Рыбы ",
" Овен ",
" Телец ",
" Близнецы ",
" Рак ",
" Лев ",
" Дева ",
" Весы ",
" Скорпион ",
" Стрелец "
};
void main() { input(); }
void checkdate(int d, int m)
{
if ((d < 1 || d > 31) || (m == 2 && d > 29) || ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30) || (m < 1 || m > 12))
{
printf("\n Некорректные данные! \a");
printf("\n Программа будет закрыта! ");
printf("\n Приносим свои извинения. ");
end();
}
}
void end()
{
Sleep(3000);
exit(0);
}
void input()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
char name[20];
printf("\n Введите имя: ");
scanf("%s", name);
int day;
printf(" Введите день рождения: ");
scanf("%d", &day);
int month;
printf(" Введите месяц рождения: ");
scanf("%d", &month);
checkdate(day, month);
switch (month)
{
case 1:
if (day < 20) print(name, zodiac[1], day, month);
else print(name, zodiac[2], day, month); break;
case 2:
if (day < 19) print(name, zodiac[2], day, month);
else print(name, zodiac[3], day, month); break;
case 3:
if (day < 21) print(name, zodiac[3], day, month);
else print(name, zodiac[4], day, month); break;
case 4:
if (day < 20) print(name, zodiac[4], day, month);
else print(name, zodiac[5], day, month); break;
case 5:
if (day < 21) print(name, zodiac[5], day, month);
else print(name, zodiac[6], day, month); break;
case 6:
if (day < 22) print(name, zodiac[6], day, month);
else print(name, zodiac[7], day, month); break;
case 7:
if (day < 23) print(name, zodiac[7], day, month);
else print(name, zodiac[8], day, month); break;
case 8:
if (day < 23) print(name, zodiac[8], day, month);
else print(name, zodiac[9], day, month); break;
case 9:
if (day < 23) print(name, zodiac[9], day, month);
else print(name, zodiac[10], day, month); break;
case 10:
if (day < 23) print(name, zodiac[10], day, month);
else print(name, zodiac[11], day, month); break;
case 11:
if (day < 23) print(name, zodiac[11], day, month);
else print(name, zodiac[12], day, month); break;
case 12:
if (day < 22) print(name, zodiac[12], day, month);
else print(name, zodiac[1], day, month); break;
}
}
void print(char name[], const char sign[], int d, int m)
{
setlocale(LC_CTYPE, "English_United States.866");
printf("\n %s %d\/%d", name, d, m);
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf(" %s\n",sign);
FILE * f = fopen("output.txt", "a");
if (f == NULL)
{
printf("\n Невозможно создать файл! \a\n Приложение будет закрыто! ");
end();
}
else
{
fprintf(f, "%s%d%d%s", name, d, m, sign);
fclose(f);
main();
}
}
очень легкая программа
задача очень проста! Но объёмна! Просто ставиш условие:
1) введите месяц
2) введите день
а в программе ставиш условие: если такой месяц, то проверяеш числа от 1-30(31).
3) если такое число, то выводиш знак
Как говорил программа большая, и нету смысла сюда писать
1) введите месяц
2) введите день
а в программе ставиш условие: если такой месяц, то проверяеш числа от 1-30(31).
3) если такое число, то выводиш знак
Как говорил программа большая, и нету смысла сюда писать
Похожие вопросы
- помогите написать программу на Си
- помогите написать программу на Си
- помогите написать программу на си
- Помогите написать программу в СИ. буду очень благодарин
- помогите написать программу в Си
- Помогите написать программу на Си.
- Помогите написать программу на Си с помощью ФУНКЦИЙ.
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
- Помогите написать программу на СИ++.Определить попадает ли точку в заштрихованную область
- Помогите написать программу со switch в СИ