Упорядочить по возрастанию расстояние от точек до прямой - C (СИ)
Формулировка задачи:
Задание звучит так:
Даны координаты нескольких точек на плоскости и уравнение прямой. Упорядочить по возрастанию (убыванию) расстояние от этих точек до прямой.
Написал вот такую программу
Помогите пожалуйста исправить! Очень скоро сдать нужно. Я тут параллельно еще с 2 разбираюсь... Ну не выходит... Запускаю через NC в TURBO C.
#include <stdio.h> #include <conio.h> #include <alloc.h> #include <math.h> void sort(int m, float *a) {int c,i; float z; do {c=0; for(i=0,i<m-1;i++) //выделяет в конце строчки и пишет "For statement missing ;" Но если я там ставлю ; пишет, что там быть не должно ; if(a[i]>a[i+1]) {z=a[i]; a[i]=a[i+1]; a[i+1]=z; c=1; } }while(i); } main() // выделяет первую скобку: "do statement must have while" {int k,b,*x,*y,m,i: float *a; FILE *in; in=foren("mas3a.dat","r"); clrscr(); Printf("Vvedite kolichestvo tochek:\n"); skanf("%d",&m); a=(float*)malloc(m*sizeof(float)); x=(int*)malloc(m*sizeof(int)); y=(int*)malloc(m*sizeof(int)); printf("Vvedite kooficenti k;b:\n"); scanf("%d%d",&k,&b); printf("Poluchaetsa priamaia y=%dx+%d\n",k,b); printf("Koordinati tochek \n"); for(i=0;i<m;i++)fscan(in,"%d;%d",&x[i],&y[i]); for(i=0;i<m;i++)printf("A%d(%d;%d)\n",i,x[i],y[i]); for(i=0;i<m;i++)a[i]=fabs(k*x[i]+y[i]+b) /sqr+(k*k+1); for(i=0;i<m;i++)printf("d%d=%1.1f",i,a[i]); sort(m,a); printf("\n"); printf("Otsortirovannie \n"); for(i=0;i<m;i++) printf("%8.1f",a[i]); getch(); } //тут выделяет знак }: "Compound statement missing }"
Решение задачи: «Упорядочить по возрастанию расстояние от точек до прямой»
textual
Листинг программы
void sort(int m, float *a) {int c,i; float z; do {c=0; for(i=0,i<m-1;i++) //выделяет в конце строчки и пишет "For statement missing ;" Но если я там ставлю ; пишет, что там быть не должно ; if(a[i]>a[i+1]) {z=a[i]; a[i]=a[i+1]; a[i+1]=z; c=1; } }while(i);// вот здесь должно быть while(c); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д