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

нахождение времени, потраченного на прохождение путником половины пути - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выделение памяти http://www.cyberforum.ru/cpp-beginners/thread256986.html
Вот кусок кода, класс и функция добавления в список Класс занимает 64 бита, я добавляю 10 элементов в список - 640 бит Потом отнимаю posl-perv то есть указатели на начало и конец и ожидаю что получу 640 А он дает 128 Может потому что оно разбросано по разным частям памяти ? class element { public :
C++ Описать процедуру в С Описать процедуру AddRightDigit(D, K), добавляющую к целому положительному числу K справа цифру D (D — входной параметр целого типа, лежащий в диапазоне 0-9, K — параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры после*довательно добавить к данному числу K справа данные цифры D1 и D2, выводя результат каждого добавления. если решитесь помочь напишите... http://www.cyberforum.ru/cpp-beginners/thread256980.html
Visual Studio 2010 кто что думает C++
Давайте обговорим 10ю студию. Мое мнение - она недоработаная, например, стоит что-то поменять в хэдере и она вылетает, интелисенс материться когда прога работает, при чем, какой-то он тупой... Кто что вообще думает? Буду рад любым мнениям...
C++ Л/р "Использование строк"
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной бук¬вы, на прописную. код #include "stdafx.h" #include <stdio.h> #include <cstring> #include <iostream> #include <conio.h> #include <windows.h>
C++ Время скидок http://www.cyberforum.ru/cpp-beginners/thread256968.html
Помогите пожалуйста решить на си: Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 10% предоставляется, если сумма покупки больше 1000 руб. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом). P.s должен получиться такой вывод: Вычисление стоимости покупки с учетом скидки
C++ При построчном чтении файла eof наступает раньше срока Здравствуйте, товарищи! Столкнулся с такой проблемой: при построчном потоковом чтении файла (при помощи getline) бит eof устанавливается раньше, чем положено (считывается меньше половины файла). При детальном изучении вопроса выяснил, что все ломается после попытки считывания строки, содержащей символ с кодом 0x1. Получается, что eof выставляется при наличие таких символов? Как... подробнее

Показать сообщение отдельно
Uraniya
 Аватар для Uraniya
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 11
14.03.2011, 11:26     нахождение времени, потраченного на прохождение путником половины пути
помгите найти ошибку, по чему программа не правильно считает
условие
Путник двигался t1 часов со скоростью v1 км/ч, затем t2 часов — со скоростью v2 км/ч и t3 часов — со скоростью v3 км/ч. За какое время он одолел первую половину пути? Если путник не двигался, то рассматривать эту ситуацию как неверный ввод данных.


код
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include "testing.h"
int _tmain(int argc, _TCHAR* argv[])
{
    TESTING
        setlocale(LC_CTYPE,"Russian"); 
    float   v1, v2, v3, v0, s0, s1, s2, s3;                                         // объявление  переменных скорости
    int  t1, t2, t3, t0, chas1, min1, chas2, min2, chas3, min3, chas0, min0;        // объявление  переменных времени
    
    // Ввод значений времени
    input_printf("Введите время прохождения первого учвстка в формате часы:минуты\n");
    scanf("%d:%d", &chas1, &min1);
    //ошибка ввода
    if (chas1<=0 || chas1>4 || min1>=60)                                                
    {
        error_printf("Значение за пределом промежутка\n");
        WAIT_ANY_KEY
        return 0;
    }
    //перевод времени из формата чч_мм в часы
    
    t1 = chas1*60 + min1;   
 
 
// Ввод значений скорости
    input_printf("Введите скорость на первом участке\n");
    scanf ("%f", &v1);
    //ошибка ввода
    if (v1<=0 || v1>7)                                                      
    {
        error_printf("Значение за пределом промежутка\n");
        WAIT_ANY_KEY
        return 0;
    }
    v1 = v1/60;
 
    input_printf("Введите время прохождения второго учвстка в формате часы:минуты\n");
    scanf("%d:%d", &chas2, &min2);
    if (chas2<=0 || chas2>4 || min2>=60)                                                
    {
        error_printf("Значение за пределом промежутка\n");
        return 0;
        WAIT_ANY_KEY
    }
    t2 = chas2*60 + min2;
 
 
    input_printf("Введите скорость на втором участке\n");
    scanf ("%f", &v2);
    if (v2<=0 || v2>7)                                                      
    {
        error_printf("Значение за пределом промежутка\n");
        WAIT_ANY_KEY
        return 0;
    }
    v2 = v2/60;
 
 
    input_printf("Введите время прохождения третьего учвстка в формате часы:минуты\n");
    scanf("%d:%d", &chas3, &min3);
    if (chas3<=0 || chas3>4 || min3>=60)                                                
    {
        error_printf("Значение за пределом промежутка\n");
        WAIT_ANY_KEY
        return 0;
    }
    t3 = chas3*60 + min3;
 
    
    input_printf("Введите скорость на третьем участке\n");
    scanf ("%f", &v3);
    if (v3<=0 || v3>7)                                                      
    {
        error_printf("Значение за пределом промежутка\n");
        WAIT_ANY_KEY
        return 0;
    }
    v3=v3/60;
 
    //вычисление половины пройденного пути
    s1 = v1 * t1;
    s2 = v2 * t2;
    s3 = v3 * t3;
    s0 = (s1 + s2 + s3)/2;                                                      
    
    //расчет времени для каждого случая 
    if (s0>0 && s0<=s1)                                                 
        t0 = s0/v1;
    if (s0>s1 && s0<=s1+s2)
        t0 = s1/v1 + (s0-s1)/v2;
    if (s0>=s1+s2 && s0<s1+s2+s3)
        t0 = s1/v1 + s2/v2 + (s0-s1-s2)/v3;     
    
    //приведение времени к формату чч,мм
    chas0 = t0/60;
    min0 = t0 - chas0*60;
                                                            
    input_printf("результат %i:%i", chas0, min0);
    
    //ожидание нажатия клавиши enter
    WAIT_ANY_KEY
    return 0;
}
тест 1:30 2.0 3:0 3.7 2:0 1.0
ответ 2.35
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru