Hallo,
ich muss für die Uni ein C-Programm erstellen, leider finde ich meinen Fehler nicht.
Könnte vlt einer mal drüber schauen und mir behilflich sein.
Aufgabenstellung und Struktogram sind im AnhangAnhang anzeigen 03_Aufg_03_a_Abstand_Struct.pdfAnhang anzeigen 03_Aufg_03_a_Abstand.pdf
Quellcode:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int anz, i, j, maxi, maxj, mini, minj;
float x[50], y[50], min, max, abst;
char weiter;
do
{
printf("Anzahl der Punkte eingeben: ");
scanf("%2d", &anz);
for (i=0; i<=anz-1; i++)
{
printf("Punkt %d eingeben: ", i+1);
printf("x %d: ", i+1);
scanf("%d", &x);
printf("y %d: ", i+1);
scanf("%d", &y);
}
max = sqrt((x[1]-x[0])*(x[1]-x[0])+(y[1]-y[0])*(y[1]-y[0]));
min=max;
for (i=1; i<anz; i++)
{
for (j=i+1 ; j<=anz; j++)
{
abst =sqrt((x[j-1]- x[i-1])*(x[j-1]-x[i-1])+(y[j-1]-y[i-1])*(y[j-1]-y[i-1]));
if (abst>=max)
{
max=abst;
maxi=i;
maxj=j;
}
if (abst<=min)
{
min=abst;
mini=i;
minj=j;
}
}
}
printf("Der Punkt P%d (%d,%d) hat mit %2.2f den\nkuerzesten Abstand von Punkt P%d(%d,%d)\n", mini,x[mini-1],y[mini-1],min,minj,x[minj-1],y[minj-1]);
printf("Der Punkt P%d (%d,%d) hat mit %2.2f den\nkuerzesten Abstand von Punkt P%d(%d,%d)", maxj,x[maxi-1],y[maxi-1],max,maxj,x[maxj-1],y[maxj-1]);
printf("\n\nNochmalige Programmausfuehrung (J/N):");
scanf("%c", &weiter);
weiter = getchar();
}
while (weiter=='J' || weiter=='j');
return 0;
}
ich muss für die Uni ein C-Programm erstellen, leider finde ich meinen Fehler nicht.
Könnte vlt einer mal drüber schauen und mir behilflich sein.
Aufgabenstellung und Struktogram sind im AnhangAnhang anzeigen 03_Aufg_03_a_Abstand_Struct.pdfAnhang anzeigen 03_Aufg_03_a_Abstand.pdf
Quellcode:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int anz, i, j, maxi, maxj, mini, minj;
float x[50], y[50], min, max, abst;
char weiter;
do
{
printf("Anzahl der Punkte eingeben: ");
scanf("%2d", &anz);
for (i=0; i<=anz-1; i++)
{
printf("Punkt %d eingeben: ", i+1);
printf("x %d: ", i+1);
scanf("%d", &x);
printf("y %d: ", i+1);
scanf("%d", &y);
}
max = sqrt((x[1]-x[0])*(x[1]-x[0])+(y[1]-y[0])*(y[1]-y[0]));
min=max;
for (i=1; i<anz; i++)
{
for (j=i+1 ; j<=anz; j++)
{
abst =sqrt((x[j-1]- x[i-1])*(x[j-1]-x[i-1])+(y[j-1]-y[i-1])*(y[j-1]-y[i-1]));
if (abst>=max)
{
max=abst;
maxi=i;
maxj=j;
}
if (abst<=min)
{
min=abst;
mini=i;
minj=j;
}
}
}
printf("Der Punkt P%d (%d,%d) hat mit %2.2f den\nkuerzesten Abstand von Punkt P%d(%d,%d)\n", mini,x[mini-1],y[mini-1],min,minj,x[minj-1],y[minj-1]);
printf("Der Punkt P%d (%d,%d) hat mit %2.2f den\nkuerzesten Abstand von Punkt P%d(%d,%d)", maxj,x[maxi-1],y[maxi-1],max,maxj,x[maxj-1],y[maxj-1]);
printf("\n\nNochmalige Programmausfuehrung (J/N):");
scanf("%c", &weiter);
weiter = getchar();
}
while (weiter=='J' || weiter=='j');
return 0;
}