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

Структура - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ программа на с http://www.cyberforum.ru/cpp-beginners/thread87110.html
Народ как сделать такую прогу Ввести с клавиатуры текст определить и выбрать самое длинное слово подсчитать кол-во букв, и вывести на экран
C++ программа часы-будильник никак не могу разобратся,подскажите пожалуйста как сделать чтобы пользователь мог сам вводить время?и как это сделать через класс? #include <process.h> #include <windows.h> #include <stdio.h> #include <conio.h> #define MINUTE(23) #define HOUR (17) #define RINGS (10) HANDLE hTerminateEvent ; VOID CALLBACK TimerAPCProc(LPVOID, DWORD, DWORD) http://www.cyberforum.ru/cpp-beginners/thread87105.html
Динамическое програмирование C++
Очень нужна помощь в решении задач на С++ или С++ Builder Помогите кто сможет,последняя надежда на вас Очень буду рада! Большое спасибо заранее!!!!!! Задача 1. Из диапазона найти числа, имеющие K делителей Например К=3 Диапозон 12345 подходит число 4 т.к. у него 3 делителя это 1,2,4 Задача 2. Две команды проводят серию игр до 6 побед одной из команд. Первая команда побеждает вторую с...
Посоветуйте литературу по объектам и классам C++
Посоветуйте литературу по объектам и классам...
C++ потоки http://www.cyberforum.ru/cpp-beginners/thread87052.html
Задали мне задачку решить которую я не смог. Задача такая: написать код (на с++), который продемонстрирует различие действия endl и \n, чтоб студент видел как endl очищает буфер. Возможно ли вообще средствами только с++ решить ее?
C++ Латинский квадрат помогите плиз написать програму где латинским квадратом порядка n называется матрица, каждая строка и каждый столбец содержат все числа от 1 до n. Проверить, является ли заданная во внешнем файле матрица латинским квадратом. :help: подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
18.01.2010, 19:51     Структура
NastiKor, вроде правильно работает, но на всякий случай проверьте получше
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#ifndef min(a, b)
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define max(a, b) (((a) > (b)) ? (a) : (b))
#endif
    
typedef struct {
    double x;
    double y;
    double r;
} Circle_t;
 
Circle_t Circle(void){
    Circle_t circle;
    printf("X: ");
    if ( scanf("%lf", &circle.x) != 1 )
        exit(1);
    printf("Y: ");
    if ( scanf("%lf", &circle.y) != 1 )
        exit(1);
    printf("R: ");
    if ( scanf("%lf", &circle.r) != 1 )
        exit(1);
    return circle;
}
 
/* Возвращает единицу, если окружности перекрываются. Если только касаются друг-друга, 
    или вообще не касаются - вернёт 0 */
int overlapedCircles(const Circle_t *a, const Circle_t *b){
    double kx, ky, distance;
    if ( a->x == b->x ){
        distance = max(a->y, b->y) - min(a->y, b->y);
    }
    else if ( a->y == b->y ){
        distance = max(a->x, b->x) - min(a->x, b->x);
    }
    else {
        kx = max(a->x, b->x) - min(a->x, b->x);
        ky = max(a->y, b->y) - min(a->y, b->y);
        distance = sqrt(kx * kx + ky * ky);
    }
    return ( a->r + b->r > distance );
}
 
void printCircles(const Circle_t *c, const int *ovl, int count){
    printf("X      Y      R      O\n");
    while ( count-- ){
        printf("%-7.1f%-7.1f%-7.1f%d\n", c->x, c->y, c->r, *ovl);
        ++c;
        ++ovl;
    }
}
 
/*
    Дан массив из 6 элементов типа структура, содержащих координаты центра окружности 
    и радиус(x,y,r)Надо определить и вывести на печать координаты центра той окружности, 
    которая пересекает максимальное количество заданных окружностей.
*/
#define CIRCLES 6
int main(void){
    Circle_t circles[CIRCLES];
    int overlaps[CIRCLES] = { 0 }, max_overlaps, i, j;
    
    for ( i = 0; i < CIRCLES; ++i ){
        printf("\nCircle #%d\n", i + 1);
        circles[i] = Circle();
    }
    
    for ( i = 0; i < CIRCLES; ++i ){
        for ( j = 0; j < CIRCLES; ++j ){
            if ( j == i )
                continue;
            if ( overlapedCircles(&circles[i], &circles[j]) )
                overlaps[i]++;
        }
    }
 
    max_overlaps = overlaps[0];
    for ( i = 1; i < CIRCLES; ++i )
        if ( overlaps[i] > max_overlaps )
            max_overlaps = overlaps[i];
 
    printf("\nAll circles:\n");
    printCircles(circles, overlaps, CIRCLES);
    printf("\nCircle(s) with maximum overlaps:\n");
    for ( i = 0; i < CIRCLES; ++i )
        if ( overlaps[i] == max_overlaps )
            printf("%-7.1f%-7.1f%-7.1f%d\n", circles[i].x, circles[i].y, circles[i].r, max_overlaps);
    
    exit(0);
}
 
Текущее время: 16:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru