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

дачники - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не могу разобраться с кодом.. что бы построить блок схему http://www.cyberforum.ru/cpp-beginners/thread244103.html
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; void main() { int a, b, n, first, k, i; bool simp;
C++ Error C2679: binary '>>': no operator found which takes a right-hand operand of type нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с информацией об учащихся: - фамилия и инициалы; - дата рождения; - номер группы; - оценки за семестр по предметам: физика, математика, информатика, этика, психология. организовать ввод исходных данных, средний балл каждого учащегося рассчить по введенным оценкам. так же вывести анкетные данные... http://www.cyberforum.ru/cpp-beginners/thread244086.html
C++ разбить метод
class ar { int *ix,in; public: void task1(); .................... ........................ }; есть файл, где объявлен класс ar.h. его реализация в ar.cpp .
Определить является ли число к степенью 3 C++
Определить является ли число к степенью 3.
C++ Нахождение палиндрома http://www.cyberforum.ru/cpp-beginners/thread244080.html
Написать функцию, которая определяет, является ли строка палиндромом. Заголовок функции: bool isPolindrom(const char *s); Написать программу, которая принимает от пользователя набор строк (массив строк), и выводит на экран только те строки, которые являются палиндромами
C++ Перегрузка operator<< Доброе время суток. Есть очередная задачка - перегрузить оператор вывода таким образом: Есть три объекта разных классов - А а, В в, С с; Нужно, чтобы при записи а << b << c; изменялось значение некоторых членов всех трех классов, ну грубо говоря, пусть там есть по одному члену типа float и пусть при такой записи вывода произойдет нечто вроде b.f+=0.2*c.f; a.f+=0.8*c.f; подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.02.2011, 13:01     дачники
Я в лоб решал, вот таким способом:

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double SABC(double AB, double AC, double BC)
{
    double p = (AB + AC + BC) / 2.0;
 
    return sqrt(p * (p - AB) * (p - AC) * (p - BC));
}
 
double PQ(double x1, double y1, double x2, double y2)
{
    return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
 
int main()
{
    int N;
    double **arr;
    double S1, S2;
    int count = 0;
    int i, j;
 
    FILE *f;
 
    f = fopen("INPUT.TXT", "r");
    fscanf(f, "%d", &N);
 
    arr = (double **)malloc(N * sizeof(double *));
 
    for (i = 0; i < N; i++)
        arr[i] = (double *)malloc(10 * sizeof(double));
 
    for (i = 0; i < N; i++)
        for (j = 0; j < 10; j++)
            fscanf(f, "%lf", &arr[i][j]);
 
    fclose(f);
 
    for (i = 0; i < N; i++)
    {
        S1 = PQ(arr[i][2], arr[i][3], arr[i][4], arr[i][5]) * PQ(arr[i][2], arr[i][3], arr[i][8], arr[i][9]);
        S2 = SABC(PQ(arr[i][0], arr[i][1], arr[i][2], arr[i][3]), PQ(arr[i][0], arr[i][1], arr[i][4], arr[i][5]), PQ(arr[i][2], arr[i][3], arr[i][4], arr[i][5])) +
             SABC(PQ(arr[i][0], arr[i][1], arr[i][4], arr[i][5]), PQ(arr[i][0], arr[i][1], arr[i][6], arr[i][7]), PQ(arr[i][4], arr[i][5], arr[i][6], arr[i][7])) +
             SABC(PQ(arr[i][0], arr[i][1], arr[i][6], arr[i][7]), PQ(arr[i][0], arr[i][1], arr[i][8], arr[i][9]), PQ(arr[i][6], arr[i][7], arr[i][8], arr[i][9])) +
             SABC(PQ(arr[i][0], arr[i][1], arr[i][8], arr[i][9]), PQ(arr[i][0], arr[i][1], arr[i][2], arr[i][3]), PQ(arr[i][8], arr[i][9], arr[i][2], arr[i][3]));
 
        if (fabs(S1 - S2) < 1E-5)
            count++;
    }
 
    f = fopen("OUTPUT.TXT", "w");
    fprintf(f, "%d", count);
    fclose(f);
 
    for (i = 0; i < N; i++)
        free(arr[i]);
 
    free(arr);
 
    return 0;
}
Добавлено через 2 минуты
Несколько раз подбирал точность, заработало только на 1E-5. Естественно, по закону подлости, я ввёл сначала 1E-4 - не прошло, и я намеренно пропустил 1E-5 и вводил 1E-6, 1E-7 и т.д. Только после нескольких итераций решил, а не попробовать-ли мне 1E-5.
 
Текущее время: 10:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru