Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2015, 20:05   #1
LalkaAzazalka
Пользователь
 
Регистрация: 16.04.2015
Сообщений: 11
По умолчанию Использование структуры (Си)

Программа проверяет правильность введённой даты, для описания даты использовать структуру. Проверка даты есть, надо сделать структуру, можете помочь пожалуйста ?

Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
    int d, m, daysinmonth;
    SetConsoleCP(1251); SetConsoleOutputCP(1251);
    printf("Программа проверяет правильность введённой даты.\n\n"
           "Дата вводится в виде двух целых чисел (день и месяц).\n\n");
    printf("Введите день: ");
    scanf("%d", &d);
    printf("Введите месяц: ");
    scanf("%d", &m);

    if ((m < 1) || (m > 12))
    printf("\nНеверный месяц !\n");

    else
   {
    if  ((m == 1) || (m == 3) || (m == 5) || (m == 7) || (m == 8) || (m == 10) || (m == 12))
    daysinmonth = 31;

    if ((m == 2))
    daysinmonth = 28;

    else
    daysinmonth = 30;


    if ((d < 1) || (d > daysinmonth))
    printf("\nНеверный день !\n");

    else
    {
    printf("\nДата введена правильно!\n");
    }
   }
   return 0;
}
LalkaAzazalka вне форума Ответить с цитированием
Старый 16.04.2015, 21:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
struct datte {int d, m, daysinmonth;}
int main()
{
 datte d;
...
    printf("Введите день: ");
    scanf("%d", &d.d);
    printf("Введите месяц: ");
    scanf("%d", &d.m);

    if ((d.m < 1) || (d.m > 12))
...
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2015, 04:14   #3
LalkaAzazalka
Пользователь
 
Регистрация: 16.04.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
struct datte {int d, m, daysinmonth;}
int main()
{
 datte d;
...
    printf("Введите день: ");
    scanf("%d", &d.d);
    printf("Введите месяц: ");
    scanf("%d", &d.m);

    if ((d.m < 1) || (d.m > 12))
...
Идея ясна?
Можно поподробнее ?
LalkaAzazalka вне форума Ответить с цитированием
Старый 17.04.2015, 06:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно:
Код:
struct datte { // Описываем структуру тип которой назовем datte
 int d, m, daysinmonth; //И твои переменные вносим в нее
}

int main()
{
 datte d; //В главной процедуре описываем переменную типа этой структуры
...
    printf("Введите день: ");
    scanf("%d", &d.d); //Теперь при обращении к ее полям мы будем писать имя переменной и поле
    printf("Введите месяц: ");
    scanf("%d", &d.m);

    if ((d.m < 1) || (d.m > 12)) // И так везде, где нужно поработать с "переменными"
//вынесенными в структуру
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2015, 09:25   #5
LalkaAzazalka
Пользователь
 
Регистрация: 16.04.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Можно:
Код:
struct datte { // Описываем структуру тип которой назовем datte
 int d, m, daysinmonth; //И твои переменные вносим в нее
}

int main()
{
 datte d; //В главной процедуре описываем переменную типа этой структуры
...
    printf("Введите день: ");
    scanf("%d", &d.d); //Теперь при обращении к ее полям мы будем писать имя переменной и поле
    printf("Введите месяц: ");
    scanf("%d", &d.m);

    if ((d.m < 1) || (d.m > 12)) // И так везде, где нужно поработать с "переменными"
//вынесенными в структуру
После datte d; вместо многоточия идёт SetConsoleCp и принтф с тем, что делает программа ?
LalkaAzazalka вне форума Ответить с цитированием
Старый 17.04.2015, 09:44   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да. Скажи честно - программа не твоя? Иначе откуда такие вопросы?
datte это тип переменной. d это сама переменная. У тебя вон три переменные int, по идее если программу писал(а) ты, то в курсе что это такое и как переменные описывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2015, 09:52   #7
LalkaAzazalka
Пользователь
 
Регистрация: 16.04.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. Скажи честно - программа не твоя? Иначе откуда такие вопросы?
datte это тип переменной. d это сама переменная. У тебя вон три переменные int, по идее если программу писал(а) ты, то в курсе что это такое и как переменные описывать.
Программу я писал Просто не знаю как структуры делать вот и вопрос такой Просто мало ли, может там тоже что-то надо дописать.
LalkaAzazalka вне форума Ответить с цитированием
Старый 17.04.2015, 10:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да не. Работать так же как и с обычными переменными, только в имени писать имя структуры - точка - имя ее поля. А в остальном все тоже самое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2015, 11:30   #9
LalkaAzazalka
Пользователь
 
Регистрация: 16.04.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. Скажи честно - программа не твоя? Иначе откуда такие вопросы?
datte это тип переменной. d это сама переменная. У тебя вон три переменные int, по идее если программу писал(а) ты, то в курсе что это такое и как переменные описывать.
Что-то компилятор много ругается заменил datte d на struct datte d, ошибок стало меньше Сейчас ругается на int main() и return.
P.S. Всё нормально, забыл точку с запятой в конце первой строчки, бывает )

Последний раз редактировалось LalkaAzazalka; 17.04.2015 в 18:52.
LalkaAzazalka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование структуры stat Agrooo Общие вопросы C/C++ 9 22.05.2013 17:15
Ошибка в использование структуры (С++) Артём Волжанкин Помощь студентам 6 10.11.2012 15:20
Повторное использование структуры Karmadon Общие вопросы C/C++ 2 29.02.2012 12:00
использование списка для структуры dimulka2010 Помощь студентам 0 28.03.2010 15:46
EXCEL - Использование структуры "ЕСЛИ" sting Помощь студентам 1 21.11.2009 10:46