Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
XChr
0 / 0 / 1
Регистрация: 13.11.2013
Сообщений: 84
Завершенные тесты: 1
1

Выбор точек на плоскости: Expected expression before 'float' и too few arguments to function 'pow'

23.05.2015, 21:35. Просмотров 337. Ответов 1
Метки нет (Все метки)

Сама задача звучит так: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью круга, ограниченного окружностью, проходящей через эти три точки, и площадью тре-угольника с вершинами в этих точках была минимальной.

Код программы:
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
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<math.h>
#define M_PI 3.14159265358979323846
 
    int n,i,j,t[50];
    float A[50][2],B[50][2],C[50][2],min;
 
 
void InPut()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("введи количество координат\n");
    scanf("%d",&n);
    printf("введи координаты точек А\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<2; j++)
        {
            scanf("%f",&A[i][j]);
        }
    }
    printf("введи координаты точек B\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<2; j++)
        {
            scanf("%f",&B[i][j]);
        }
    }
    printf("введи координаты точек C\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<2; j++)
        {
            scanf("%f",&C[i][j]);
        }
    }
}
void length(float U[50],float G[50],float K[50])
{
    for(i=0; i<n; i++)
    {
        U[i]=sqrt(pow(float(B[i][0]-A[i][0]),2)+pow(float(B[i][1]-A[i][1]),2));
        G[i]=sqrt(pow(float(C[i][0]-B[i][0]),2)+pow(float(C[i][1]-B[i][1]),2));
        K[i]=sqrt(pow(float(C[i][0]-A[i][0]),2)+pow(float(C[i][1]-A[i][1]),2));
    }
}
void OutPut(float razn[50],float v)
{
    float max;
    for(max=0,i=0; i<n; i++)
    {
        if (razn[i]>max) max=razn[i];
    }
    for(i=0,v=max; i<n; i++)
    {
        if (t[i]==1)
        {
            if (razn[i]<v) v=razn[i];
        }
    }
    for(i=0; i<n; i++)
    {
        if ((t[i]==1)&&(v==razn[i]))
        {
            printf("наименьшая разность площадей=%f\n",v);
            printf("координаты треугольника\n");
            printf("A=(%f %f)\n",A[i][0],A[i][1]);
            printf("B=(%f %f)\n",B[i][0],B[i][1]);
            printf("C=(%f %f)\n",C[i][0],C[i][1]);
        }
    }
}
int main()
{
    float p[50],Strg[50],S[50],R[50],Sokr[50],X[50],Y[50],Z[50],min;
    InPut();
    length(X,Y,Z);
    for(t[i]=0,i=0; i<n; i++)
    {
        if (((X[i]+Y[i])>Z[i])&&((X[i]+Z[i])>Y[i])&&((Y[i]+Z[i])>X[i])) t[i]=1;
    }
    for(i=0; i<n; i++)
    {
        if (t[i]==1)
        {
            p[i]=(X[i]+Y[i]+Z[i])/2;
            Strg[i]=sqrt(p[i]*(p[i]-X[i])*(p[i]-Y[i])*(p[i]-Z[i]));
            R[i]=(X[i]*Y[i]*Z[i])/(4*Strg[i]);
            Sokr[i]=(M_PI)*pow((R[i]),2);
            S[i]=Sokr[i]-Strg[i];
        }
    }
    for(i=0; i<n; i++)
    {
        printf("t[%d]=%d\n",i,t[i]);
    }
    OutPut(S,min);
    _getch();
    return 0;
}
Компилятор жалуется на строчки
C
1
2
3
        U[i]=sqrt(pow(float(B[i][0]-A[i][0]),2)+pow(float(B[i][1]-A[i][1]),2));
        G[i]=sqrt(pow(float(C[i][0]-B[i][0]),2)+pow(float(C[i][1]-B[i][1]),2));
        K[i]=sqrt(pow(float(C[i][0]-A[i][0]),2)+pow(float(C[i][1]-A[i][1]),2));
Выдаёт ошибки:
Expected expression before 'float'
too few arguments to function 'pow'

Как исправить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2015, 21:35
Ответы с готовыми решениями:

[Error] too few arguments to function 'pow'?
int main() { double b,a,x,y,z; scanf(&quot;%fl%fl%fl&quot;, &amp;z, &amp;x, &amp;y); ...

Error: too few arguments to function 'pow'
Как правильно записать формулу? f\left(x,y...

[Error] expected primary-expression before 'float' ребята, как исправить
#include &lt;iostream&gt; #include&lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;cstdlib&gt;...

expected primary-expression before "bre" ; expected `;' before "bre" ; `bre' undeclared (first use this function)
#include &lt;iostream&gt; using namespace std; struct point { int x; ...

FUN must be a function, a valid string expression, or an inline function object
Здраствуйте, нужна помощь. clear all; close all; Scr_data_C;...

1
NoMasters
Псевдослучайный
1912 / 1123 / 90
Регистрация: 13.09.2011
Сообщений: 3,181
24.05.2015, 17:46 2
Для приведения тип надо указывать в скобках:
C
1
U[i]=sqrt(pow((float)(B[i][0]-A[i][0]),2)+pow((float)(B[i][1]-A[i][1]),2));
Хотя здесь вообще-то ничего приводить и не надо было.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2015, 17:46

Expected function body after function declaration
почему выдается эта ошибка ?

Too few arguments to function
Доброго времени суток! Возникла проблема при компиляции кода, собственно на...

Function does not take 0 arguments
Доброго времени суток! Задали написать программу (Найдите объём правильной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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