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

Hilfe
Neues Thema
Antworten

Nach oben

