Frage zu Vektor...
-
#include "stdafx.h" #include "stdio.h" long xo[100]; long i=0; int f=0; int main() {printf("Geben Sie 100 Zahlen ein, bestaetigen Sie nach jeder eingegebenen Zahl mit Enter\n"); while(f<=100){ scanf("%d", xo[i]); f++; printf("\n"); i++;} return 0; } #include <iostream> void wait () { std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); }
Wenn ich in der Konsole eine Zahl eingegeben und mit "Enter" bestätigt habe, kommt die Meldung "long-Vektor.exe funktioniert nicht mehr.".
Woran liegt das?
Ich hoffe auf hilfreiche Antworten!Gruß
-
An mikroskopisch kleinen schwarzen Loechern, die die Elektronen in deiner CPU fressen. Sie werden immer dann erzeugt, wenn in einem Programm C mit C++ gemischt und ausgefuehrt wird. Desweiteren fangen die meisten Programmierer bei 0 an zu zaehlen. Nach hundert Mal sind sie also bei 99 angelangt. Hey, das erinnert mich an 99 Bottles of Beer.
-
Das mit 99 und 100 ist mir auch eben noch aufgefallen.
Ok, also liegt's daran, dass ich einen C++-Compiler habe, aber die Spraceh C lerne.
-
Ok, also liegt's daran, dass ich einen C++-Compiler habe, aber die Spraceh C lerne.
Nein, aber alles, was in wait() drinsteht, ist C++. Einfach weglassen!
Mach mal aus Zeile 11
scanf("%d", xo+i);
-
Ok, so funktionniert es.
Ich verstehe aber nicht warum
Es wäre nett, wenn es jemand erklären könnte.
-
Gastus schrieb:
Ok, so funktionniert es.
Ich verstehe aber nicht warum
Es wäre nett, wenn es jemand erklären könnte.Weil scanf die Speicheradressen der Variablen als Argument(e) erwartet und nicht die Variablen selbst.
-
aaahh natürlich!
vielen dank für die schnelle hilfe!