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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2020, 05:59   #1
ep1ckby
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 20
По умолчанию Перенос кода внутри функции

Всем привет, нужна помощь с переносом строчек кода в главной функции
Код:
cout << endl;
    cout << " Введите текущую дату - день, месяц и год: ";
    cin >> bd >> bm >> by;

    cout << endl;
    cout << " Введите дату рождения- день и месяц:  ";
    cin >> ed >> em;

    if (em <= bm, ed < bd ) {
        ey = by + 1;
    }
    else {
        if (em >= bm , ed > bd ) {
            ey = by;
        }
    }
а в идеале должно быть так
Код:
cout << endl;
    cout << " Введите дату рождения- день и месяц:  ";
    cin >> ed >> em;

    if (em <= bm, ed < bd) {
        ey = by + 1;
    }
    else {
        if (em >= bm, ed > bd) {
            ey = by;
        }
    }

    cout << endl;
    cout << " Введите текущую дату - день, месяц и год: ";
    cin >> bd >> bm >> by;
ругается 4700 использована неинициализированная локальная переменная bd , by


вот полный код программы
Код:
#include <iostream> 
#include <ctime> 
#define DAY 86400 
using namespace std;

int main(){
    setlocale (0, "");

    int bd, bm, by;
    int ed, em, ey;
    time_t time1, time2, daysDifference;

    cout << endl;
    cout << " Введите текущую дату - день, месяц и год: ";
    cin >> bd >> bm >> by;

    cout << endl;
    cout << " Введите дату рождения- день и месяц:  ";
    cin >> ed >> em;

    if (em <= bm, ed < bd ) {
        ey = by + 1;
    }
    else {
        if (em >= bm , ed > bd ) {
            ey = by;
        }
    }
    
    tm dateEnd = { 0, 0, 0, ed, em - 1, ey - 1920, 0, 0, 0 };
    tm dateBeg = { 0, 0, 0, bd, bm - 1, by - 1920, 0, 0, 0 };
    time1 = mktime(&dateBeg);
    time2 = mktime(&dateEnd);
    
    daysDifference = ((time1 > time2) ? time1 - time2 : time2 - time1) / DAY;

    cout << endl;
    cout << "До дня рождения осталось: " << daysDifference << " дней " << endl;
    return 0;   
}
программа работает , но последовательность ввода не та которая нужна(
как можно обратиться к этим переменным до того как ты их введешь с консоли ?

Последний раз редактировалось ep1ckby; 15.10.2020 в 06:02.
ep1ckby вне форума Ответить с цитированием
Старый 15.10.2020, 06:23   #2
ep1ckby
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 20
По умолчанию

Код:
if (em < bm) {
        ey = by + 1;
не дописал в коде (

Последний раз редактировалось ep1ckby; 15.10.2020 в 06:27.
ep1ckby вне форума Ответить с цитированием
Старый 15.10.2020, 06:36   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Так сначала введите все необходимые данные (поменяйте местами только строчки с cout и cin), а потом уже считайте.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 15.10.2020, 07:27   #4
ep1ckby
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 20
По умолчанию

BDA,
Спасибо за ответ. Вначале он мне показался глупым и не отвечающим на вопрос.(
а потом я понял что цикл if можно перенести после ввода всех переменных , что и помогло.
Вроде бы очевидная вещь, а 4-5 часов убил на это .
Ещё раз спасибо за ответ.
ep1ckby вне форума Ответить с цитированием
Старый 15.10.2020, 07:55   #5
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от ep1ckby Посмотреть сообщение
а 4-5 часов убил на это .
а с использованием отладчика потратилось бы 5 минут
Алексей1153 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание функции для создания точек внутри куба и сферы: перевод кода из C++ в Delphi VolodyaBuzin Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 23.09.2019 13:30
[C#] Что выполняется в этом коде (внутри фотография распечатки листинга кода)? Raker Помощь студентам 0 23.06.2017 08:23
перенос внутри ячейки orange_rush Microsoft Office Excel 1 29.12.2010 16:32
Перенос кода drzod Visual C++ 1 20.11.2010 14:55
Перенос кода в памяти Canyon Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 28.02.2010 20:24