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

Требуется определить расстояние, на котором окажутся бегуны друг от друга в конце тренировки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввод и вывод в бинарном файле http://www.cyberforum.ru/cpp-beginners/thread214857.html
Имеется задача: Дан файл действительных чисел, первые 2 числа задают координаты начала линии, каждая следующая пара чисел соответствует длине очередного отрезка линии и углу его наклона к оси Ох. Определить, образует ли линия замкнутый многоугольник, и в случае положительного ответа указать,кол-во углов. Код вообщем написал , да и работать он должен правильно: #include <stdio.h> #include...
C++ Строки в С++....сравнение слов не получется... Прога для решения задачи: С клавиатуры вводятся две строки, содержащие некоторые слова. Слова перечислены через запятую. Исключить из первой строки слова, входящие во вторую строку. Слова должны сравниваться без учета регистра символов. Строка 1: world,cat,DOG,BALL Строка 2: World,dog,processor,memory,programming Результат: cat ball Накалякал прогу... http://www.cyberforum.ru/cpp-beginners/thread214845.html
c++ подскажите C++
как сохранять переменные В ini файл и как с него считывать если можно напишите пример программы
C++ Структуры в с++
(3)Описать структуру с именем AEROFLOT, содержащую сл. Поля: -- название пункта назначения рейса; -- номер рейса; -- тип самолета; (4)Написать программу, выполняющую сл. Действия: -- ввод с клавиатуры данных в массив, состоящий из 7 элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения; -- вывод на экран пунктов назначения и ...
C++ Проверьте код на правильность. http://www.cyberforum.ru/cpp-beginners/thread214829.html
Вот код на Delphi: procedure TForm1.Button4Click(Sender: TObject); var i: integer; begin for i:=0 to 20 do if (TrackBar1.Position<=20) and (TrackBar1.Position>=0) then begin Application.ProcessMessages();
C++ Динамические массивы в c++ (1)В одномерном массиве, состоящем из n-вещественных элементов, вычислить: 1) Максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Списать массив, удалив из него все элементы, модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить нулями. !!! Использовать динамические массивы !!! (2)Дана... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.12.2010, 13:11     Требуется определить расстояние, на котором окажутся бегуны друг от друга в конце тренировки
Мда!, как-то заумно получилось, но работает:
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct TASK {
    int task_time;
    int task_speed;
} task_t;
 
#define L 400
 
int main(void){
    int numTasks, i, l1, l2, dl;
    task_t * tasks[2];
    
    printf("Number of tasks: ");
    if ( scanf("%d%*c", &numTasks) != 1 || numTasks < 1 ){
        fprintf(stderr, "Wrong input!\n");
        exit(1);
    }
    
    if ( ( tasks[0] = (task_t*)calloc(numTasks, sizeof(task_t)) ) == NULL ){
        perror("calloc");
        exit(1);
    }
    if ( ( tasks[1] = (task_t*)calloc(numTasks, sizeof(task_t)) ) == NULL ){
        perror("calloc");
        exit(1);
    }
    
    printf("\nTasks for first runner (speed1 time1 speed2 time2...):\n");
    for ( i = 0; i < numTasks; ++i ){
        if ( scanf("%d %d", &(tasks[0][i].task_speed), &(tasks[0][i].task_time)) != 2 || tasks[0][i].task_time < 1 ){
            fprintf(stderr, "Wrong input!");
            free(tasks[0]);
            free(tasks[1]);
            exit(1);
        }
    }
    
    printf("\nTasks for second runner (speed1 time1 speed2 time2...):\n");
    for ( i = 0; i < numTasks; ++i ){
        if ( scanf("%d %d", &(tasks[1][i].task_speed), &(tasks[1][i].task_time)) != 2 || tasks[1][i].task_time < 1 ){
            fprintf(stderr, "Wrong input!");
            free(tasks[0]);
            free(tasks[1]);
            exit(1);
        }
    }
    
    l1 = l2 = 0;
    for ( i = 0; i < numTasks; ++i ){
        l1 += tasks[0][i].task_speed * tasks[0][i].task_time;
        l2 += tasks[1][i].task_speed * tasks[1][i].task_time;
    }
    if ( ( l1 %= L ) < 0 )
        l1 = L + l1;
    if ( ( l2 %= L ) < 0 )
        l2 = L + l2;
    
    dl = abs(l2 - l1);
    printf("\nBetween runners: %d m.\n", ( dl < L - dl ) ? dl : L - dl);
    
    free(tasks[0]);
    free(tasks[1]);
    
    exit(0);
}
Насколько правильно считает - не проверял...
 
Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru