ich versuche c zu lernen und ich habe ein kleines Übungsprogramm geschrieben, dass Quadratwurzel berechnen soll. Das Programm funktioniert auch erstmal ganz gut: es berechnet den richtigen Wert, jedoch kommt bei mir immer die Fehlermeldung , wenn ich dann eine weitere Taste drücken, eigentlich sollte das Programm beendet werden.
Zitat
Run-Time Check Failure #2 - Stack around the variable 'x' was corrupted.
Ich finde den Fehler nicht.
Das ist der gesamtme Quellcode:
#include "stdafx.h" #include <stdio.h> #include <conio.h> int main() { int i; float x [20], r; printf("Die ist ein Programm zur naeherungsweisen Bestimmung der Quadtratwurzel einer Zahl.\n"); printf("Bitte geben Sie die Zahl an, deren Quadratwurzel bestimmt werden soll:\n"); scanf("%f", &r); x [0] = 1; for (i=0; i<20; ++i ) x[1+i]=((x[i]+(r/x[i]))/2); printf("Die Quadratwurzel von %f ist %f.",r , x[19]); getch(); return 0; }
Die Formel ist von Wikipedia
http://de.wikipedia..../Heronverfahren
Ich verwende Microsoft Visual c++ Express.
Ich habe den Fehler inzwischen selber gefunden:
in der 7. Zeile muss es float x [21], r; statt float x [20], r; heißen.
Hier noch mal der vollständige richtige Code:
#include "stdafx.h" #include <stdio.h> #include <conio.h> int main() { int i; float x [21], r; printf("Die ist ein Programm zur naeherungsweisen Bestimmung der Quadtratwurzel einer Zahl.\n"); printf("Bitte geben Sie die Zahl an, deren Quadratwurzel bestimmt werden soll:\n"); scanf("%f", &r); x [0] = 1; for (i=0; i<20; i++ ) x[1+i]=((x[i]+(r/x[i]))/2); printf("Die Quadratwurzel von %f ist %f.",r , x[i]); getch(); return 0; }
Dieser Beitrag wurde von xor bearbeitet: 06. Januar 2007 - 13:47