So es läuftVielen Dank es hat Spaß gemacht
Hier der Quellcode.
Code:#include <stdio.h> #include <math.h> main() { int i = 0; int n; float fhypo = 0; int ihypo = 0; float fflaeche = 0; int iflaeche = 0; int ix = 1; int iy = 1; int izaehler = 0; int ifertig = 0; int ergebnisse[400][4]; int ergebnissetemp[1][4]; printf("Wie viele rechtwinklige und flaechengleiche Dreiecke soll das Programm suchen? "); scanf("%d", &n); do { do { fhypo = sqrt((float)(ix*ix)+(iy*iy)); ihypo = (int)fhypo; if((fhypo-ihypo) == 0) { fflaeche = (float)(ix * iy / 2); iflaeche = (int)fflaeche; if((fflaeche-iflaeche) == 0) { ergebnisse[izaehler][0] = ix; ergebnisse[izaehler][1] = iy; ergebnisse[izaehler][2] = ihypo; ergebnisse[izaehler][3] = iflaeche; izaehler++; } } iy++; }while(iy < 250); iy = 1; ix++; }while(ix < 250); do { ifertig = 1; int l; for(l=0; l<izaehler; l++) { if(ergebnisse[l][3] > ergebnisse[l+1][3]) { ergebnissetemp[0][0] = ergebnisse[l][0]; ergebnissetemp[0][1] = ergebnisse[l][1]; ergebnissetemp[0][2] = ergebnisse[l][2]; ergebnissetemp[0][3] = ergebnisse[l][3]; ergebnisse[l][0] = ergebnisse[l+1][0]; ergebnisse[l][1] = ergebnisse[l+1][1]; ergebnisse[l][2] = ergebnisse[l+1][2]; ergebnisse[l][3] = ergebnisse[l+1][3]; ergebnisse[l+1][0] = ergebnissetemp[0][0]; ergebnisse[l+1][1] = ergebnissetemp[0][1]; ergebnisse[l+1][2] = ergebnissetemp[0][2]; ergebnisse[l+1][3] = ergebnissetemp[0][3]; ifertig = 0; } } }while(ifertig != 1); again:; int s; do { s++; if(ergebnisse[s][3] == ergebnisse[s-1][3] && ergebnisse[s][3] == ergebnisse[s-2][3] && i<n-1) { i++; printf("\n--%d-------------", i); printf("\nFlaeche: %d", ergebnisse[s][3]); printf("\nDreieck1 (%d, %d, %d)", ergebnisse[s-2][0], ergebnisse[s-2][1], ergebnisse[s-2][2]); printf("\nDreieck2 (%d, %d, %d)", ergebnisse[s-1][0], ergebnisse[s-1][1], ergebnisse[s-1][2]); printf("\nDreieck3 (%d, %d, %d)\n", ergebnisse[s][0], ergebnisse[s][1], ergebnisse[s][2]); s=s+2; goto again; } else if (ergebnisse[s][3] == ergebnisse[s-1][3] && ergebnisse[s][3] == ergebnisse[s-2][3] && i == n-1) { i++; printf("\n--%d-------------", i); printf("\nFlaeche: %d", ergebnisse[s][3]); printf("\nDreieck1 (%d, %d, %d)", ergebnisse[s-2][0], ergebnisse[s-2][1], ergebnisse[s-2][2]); printf("\nDreieck2 (%d, %d, %d)", ergebnisse[s-1][0], ergebnisse[s-1][1], ergebnisse[s-1][2]); printf("\nDreieck3 (%d, %d, %d)\n", ergebnisse[s][0], ergebnisse[s][1], ergebnisse[s][2]); break; } }while(s < izaehler-1); getch(); }







Zitieren

Lesezeichen