C Printf und Scanf dauert ewigkeiten?!

MrSyniXDriVe

Lt. Junior Grade
Registriert
Aug. 2013
Beiträge
308
Hallo zusammen.
Mit einem Programm will ich durch die Eingabe von Seitenlängen berechnen, ob es sich um ein Dreieck handeln kann, und wenn ja um welche Art.
Ich habe ein Problem beim einlesen der Daten. Da man mehrere Dreiecke überprüfen können soll, benutze ich einen 2-dimensionalen Array.

Code:
int main(int argc, char const *argv[]) {

  int triangle_amount;
  printf("Please enter the number of triangles to check:");
  scanf("%d\n",&triangle_amount);

  float matrix[triangle_amount][3];

  for (int i = 0; i < triangle_matrix; i++)
  {
    printf("Please enter the first number of the triplet: ");
    scanf("%f\n",&matrix[i][0]);
    printf("Please enter the second number of the triplet: ");
    scanf("%f\n",&matrix[i][1]);
    printf("Please enter the third number of the triplet: ");
    scanf("%f\n",&matrix[i][2]);
  }

Aber wenn ich das Programm nun kompiliere und im CMD ausführe, braucht es einfach ewigkeiten bis die erste printf erscheint. Anschließend nach der eingabe von triangle_amount passiert nix. erst wenn ich exit schreibe, werden die ganzen printfs von der For-Schleife auf einen rutsch hingeschrieben.
Kann mir wer erklären wo da der fehler liegt?
PS: Falls der Code richtig fürn A**** ist dann verurteilt mich bitte nicht, bin C-Anfänger ^^
PPS: Die Leistung des rechners sollte dafür locker reichen (Surface Pro 4)
 
Zuletzt bearbeitet:
ups, da steht eigentlich auch triangle_amount anstatt von triangle_matrix. Ist also bestimmt nicht das Problem.

werd mir die links mal ansehen
 
aroxx schrieb:
in welcher Umgebung entwickelst du denn? Wie wird der code compiled?

Als Editor verwende ich ATOM und kompiliere dann mit GCC MinGW unter Windows.
 
Probiere mal in deinem scanf, das "\n" wegzulassen. Scanf erwartet hier eine weitere Eingabe, die kein whitespace-Zeichen ist
 
int main(int argc, char const *argv[])

würde ich ersetzen durch int main(void) - argc und argv sind Parameterübergabe für den Befehl/DOS.

triangle_matrix durch triangle_amount ersetzen.

Sonst sieht es gut aus. Du kannst es ja mal mit einem Online-Compiler versuchen, gibt Hunderte. Das ist ganz praktisch beim Lernen von C-Basics.
 
Zurück
Oben