Eingabe funktioniert nicht

OP #3435568
Lesenswert?
• ▲
▼
Hi,
ich habe ein Problem welches eigentlich auf Anfänger Basis ist aber ich 
bekommen aber nicht raus was da schief ist:

Ich habe zwei Eingaben und diese Eingaben sind ganz normale Zahlen (int)
Diese Zahlen sollen dann in for Schleifen. Wenn ich statisch Zahlen den 
Variablen gebe dann funktionieren die for Schleifen ganz normal wie sie 
sollten und wenn ich die per Eingabe mache dann kommt eine 
Endlosschleife:
1
.
2
.
3
.
4
printf("Leange des Breadboards (Anzahl der Stiftkeastchen): ");
5
scanf("%d", &leange);
6
printf("Breite des Breadboards (Anzahl der Stiftkeastchen): ");
7
scanf("%d", &breite);
8
.
9
.
10
.

Gruß und Danke
OP #3435584
Lesenswert?
• ▲
▼
1
#include <stdio.h>
2

3
int main(){
4
int i;
5
int j;
6
int leange;
7
int breite;
8
int k;
9
int l;
10
int m;
11
int n;
12
int abschnitt1u2=breite/2;
13

14
/*-----------------Start-----------------------------*/
15
printf("-----------------Breadboardeditor Version 0.1--------------------");
16
printf("\n\n");
17
printf("Willkommen zu dem Breadboardeditor V0.1\n");
18
printf("Um es Entwicklern leichter zu machen mit Breadboards zu arbeiten, habe\n");
19
printf("ich ein kleines Programm geschrieben, welches Entwicklern helfen soll ein Breadboard\n");
20
printf("auf Papier zu bringen, um dort etwas zu skizzieren.\n");
21
printf("\nAnleitung:\n");
22
printf("1. Masse eingeben\n");
23
printf("2. Ergebniss kopieren (Rechtsklick >> Markieren dann Rechtklick >> Kopieren)\n");
24
printf("3. In Texteditor (Standart MS Notepad empfohlen, wegen Zeilenabstand)\n");
25
printf("\n\n");
26

27
    /*-----------------Programm mit klein o-----------------------*/
28
printf("Leange des Breadboards (Anzahl der Stiftkeastchen): ");
29
scanf("%d", &leange);
30
printf("Breite des Breadboards (Anzahl der Stiftkeastchen): ");
31
scanf("%d", &breite);
32
for(i=0; i<=abschnitt1u2; i++){
33
        for(j=0; j<=leange; j++){
34
            printf("o");
35
        }
36
            printf("\n");
37
       }
38

39
       for(n=0; n<=abschnitt1u2; n++){
40
        printf("_-");
41
       }
42
       printf("\n");
43

44
for(k=0; k<=abschnitt1u2; k++){
45
        for(m=0; m<=leange; m++){
46
            printf("o");
47
    }
48
    printf("\n");
49
}
50
return 0;
51
}
52

53
/* Alle Rechte vorbehalten*/
#3435591
Lesenswert?
• ▲
▼
Ähm
1
...
2
int breite;
3
...
4
int abschnitt1u2=breite/2;
5
...

C ist nicht Excel, dass sich selber zusammen sucht, in welcher 
Reihenfolge welche Berechnungen gemacht werden müssen, damit am Ende ein 
sinnvolles Resultat rauskommt.

Funktionen werden von oben nach unten abgearbeitet, es sei denn durch 
Schleifen oder Abfragen ergibt sich etwas anderes. Du kannst nicht den 
Wert von abschnitt1u2 berechnen, solange du den Wert von breite noch 
nicht hast.

1
 ....
2
int breite;
3
...
4
int abschnitt1u2;
5
....
6

7
  printf("Breite des Breadboards (Anzahl der Stiftkeastchen): ");
8
  scanf("%d", &breite);
9

10
/* jetzt kennst du den Wert für 'breite'. Und erst jetzt kannst du den Wert
11
** für abschnitt1u2 berechnen
12
*/
13

14
  abschnitt1u2 = breite / 2;
15

16
/*
17
*/
18
  for(i=0; i<=abschnitt1u2; i++){
19
    ...
#3435609
Lesenswert?
• ▲
▼
Nicht so schnell.

Wenn du wieder mal so ein Problem hast:
Schleifen laufen nicht von alleine endlos. In deinem Fall gibt es eine 
Abbruchbedingung. DIe ist offenbar nie erfüllt worden (bzw. du warst zu 
ungeduldig).
Aber: du hast ein funktionierendes printf.
Wenn man nicht weiß, welche Werte diverse Variablen haben, zum Beispiel 
die Variablen in Abbruchbedingungen, dann ist es durchaus erlaubt, sich 
die Werte ausgeben zu lassen. Selbst dann, wenn das momentan dein 
angedachtes Schirmbild durcheinander bringt.
1
printf("Leange des Breadboards (Anzahl der Stiftkeastchen): ");
2
scanf("%d", &leange);
3
printf("Breite des Breadboards (Anzahl der Stiftkeastchen): ");
4
scanf("%d", &breite);
5

6
printf( "L:%d, B:%d, abschnitt1u2 %d\n, laenge, breite, abschnitt1u2 );
7

8
for(i=0; i<=abschnitt1u2; i++){

damit hättest du gesehen, dass mit dem Wert, der zur Schleifensteuerung 
benutzt wird, etwas nicht stimmt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.