Выбор точек на плоскости: Expected expression before 'float' и too few arguments to function 'pow' - C (СИ)
Формулировка задачи:
Сама задача звучит так: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью круга, ограниченного окружностью, проходящей через эти три точки, и площадью тре-угольника с вершинами в этих точках была минимальной.
Код программы: Компилятор жалуется на строчки Выдаёт ошибки:
Expected expression before 'float'
too few arguments to function 'pow'
Как исправить?
#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; }
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'»
textual
Листинг программы
U[i]=sqrt(pow((float)(B[i][0]-A[i][0]),2)+pow((float)(B[i][1]-A[i][1]),2));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д