Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
#1

Решение задачи определения разницы возрастов - C++

20.07.2013, 16:02. Просмотров 743. Ответов 4
Метки нет (Все метки)

Имеется задача:

Два одноклассника Петя и Вася родились не ранее 1993 и не позднее 1994 года, причем, Петя старше Васи.

Напишите программу, которая по заданным дням рождения определяет: на сколько дней Петя старше Васи.

Заметим, что 1993 и 1994 года не являются високосными, т.е. в феврале в них ровно 28 дней.

Входные данные

Входной файл INPUT.TXT содержит дату рождения Пети в первой строке и дату рождения Васи во второй. Даты заданы в формате «ДД.ММ.ГГ», например, строка 06.02.93 означает дату рождения 6 февраля 1993 года.

Выходные данные

В выходной файл OUTPUT.TXT выведите единственное число – искомое количество дней.

Имеется решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>;
#include <iostream>;
 
int main ()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    char a[9], b[9];
    std::cin >> a >> b;
    short d1, d2, m1, m2, y1, y2, r=0, d;
    d1=( *a-48 )*10 + *(a+1)-48;
    d2=( *b-48 )*10 + *(b+1)-48;
    m1=( *(a+3)-48 )*10 + *(a+4)-48;
    m2=( *(b+3)-48 )*10 + *(b+4)-48;
    y1=( *(a+7)-48 );
    y2=( *(b+7)-48 );
    if(y1==y2 && m1==m2) r=d2-d1;
    else 
    {
        while(y1!=y2 || m1!=m2)
        {
            if(m1==2) d=28;
            else if(m1==4 || m1==6 || m1==9 || m1==11) d=30;
            else d=31;
            if(!r) r=d-d1;
            else r+=d;
            m1++;
            if(m1==13) { m1=1; y1++; }
        }
        r+=d2;
    }
    std::cout << r;
}
Помогите найти ошибку или привидите пример на котором программа дает неверный ответ!!!!! HELP!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2013, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение задачи определения разницы возрастов (C++):

Придумал решение определения простого числа. Нету формулы попроще ? - C++
Доброго времени суток. Спустя пол часа раздумий догадался как написать программу определения простое число или нет. Но она мне кажется...

Решение задачи - C++
При решении задачи, столкнулся наверное с самой непреодолимой!!! z1 = 2 * (1 - cos(2 * (3 * pi - 2 * alpha)) / 2) * (1 + cos(2 * ( 5 *...

Решение задачи c++ - C++
Написать программу вычисляющую значение функции y=√(9-x*x) на задонном орезке с заданным шагом H=0.25 помогите пожалйста а то я...

Решение задачи - C++
Нужна помощь в решении задачи. Прошу помочь надеюсь в вашей поддержке:( прошу решить задачу

Решение задачи - C++
Помогите, пожалуйста! Решить задачу в С++, только с использованием цикла. Вывести на экран: 1111111 222222 33333 4444 555 66 ...

Решение задачи - C++
Помогите, пожалуйста =) Решить задачу в С++ Задано три символа. Напишите программу, которая выводит символы в порядке возрастания их...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
20.07.2013, 19:01 #2
попробуйте в отладчике пройти каждую строчку программы. и после каждого шага проверяйте значения переменных
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
20.07.2013, 19:06 #3
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Помогите найти ошибку или привидите пример на котором программа дает неверный ответ!!!!!
то есть ты сам даже не знаешь, верный ответ даёт программа или неверный? И в каких примерах даёт? С чего тогда ты взял, что есть ошибка?
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
20.07.2013, 19:29 #4
Kuzia domovenok, он отправил эту задачу на онлайн-тестирующей системе и, по ходу, получил Wrong Answer (значит неверный ответ выдала его программа).

Добавлено через 7 секунд
и тест не предоставляется, на котором слетела его программа.
1
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
21.07.2013, 18:27 #5
уже решал. Некоторые заголовки можешь спилить для красоты.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <bitset>
#include <set>
#include <stack>
#include <iomanip> 
#include <map>
#include <sstream>
 
using namespace std;
 
const int days_in_month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
int main() {
    freopen ("input.txt", "rt", stdin);
    freopen ("output.txt", "wt", stdout);
    int d1, m1, g1;
    int d2, m2, g2;
    char ch;
    scanf("%d%c%d%c%d", &d1, &ch, &m1, &ch, &g1);
    scanf("%d%c%d%c%d", &d2, &ch, &m2, &ch, &g2);
    int ans = 0;
    while (d1 != d2 || m1 != m2 || g1 != g2) {
        ++d1;
        ++ans;
        if (d1 > days_in_month[m1-1]) {
            ++m1;
            d1 = 1;
            if (m1 > 12) {
                m1 = 1;
                ++g1;
            }
        }
    }
    cout << ans;
    return 0; 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2013, 18:27
Привет! Вот еще темы с ответами:

Решение задачи - C++
Доброго времени суток! Очень глупый, уверен, для Вас вопрос, но мне задали задачу, решить пример: (a+b)2-(a2+2ab)/b2 Вот код программы:...

Решение задачи - C++
Как решить задачу: поменять местами второй четный со вторым нечетным в одномерном массиве

Решение задачи - C++
Для проффесионалов, я думаю, это будет очень легко. Условие, собственно, таково: Требуется подсчитать, на сколько минут раньше...

Решение задачи - C++
в первом модуле определёна квадратная матрица четвёртого разряда. Выводится изменённая матрица построчно. во втором модуле все элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.07.2013, 18:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru