Problem -Array!
-
Hallo,
hab ein kleines Problem mit einem Code!
Eig. dürfte das ganze simple sein, aber ich komm einfach nicht drauf.
Und zwar, ich möchte das "Zugriff", oder "Zugriff verweigert" nur einmal ausgegeben wird - in meinem Code gibt's nach jedem verglichenen Array-wert den sch.. aus.
vielen Dank schonmal.
1 #include <stdio.h>
2
3 int main (void)
4 {
5
6 int array[] ={1,2,3,4};
7 int array2[3];
8 int i;
9 int y;
10
11
12
13
14 for(i=0;i<=3;i++)
15 {
16
17 printf("Bitte gebe Sie die %i Zahl ihres Pins ein\n", array[i]);
18 array[i]= i+1;
19 scanf("%i",& array2[i]);
20 }
21
22
23 for(y=0;y<=3;y++)
24 {
25
26 if (array[y] == array2[y])
27 {
28 printf("zugriff\n");
29 }
30
31 else
32 {
33 printf("zugang verweigert\n");
34 }
35
36
37
38
39
40 }
41
42
43 }
-
Das kannst du mit einem break machen (mit dem break wird die Schleife verlassen).
else { printf("zugang verweigert\n"); break; }
Verwende bitte das nächste Mal Codetags.
-
Problem ist, wir dürfen während der Prüfung keine breaks verwenden!
Danke trotzdem
-
Du hast anscheinend ein Fanatiker der strukturierten Programmierung als Lehrer. Dann musst du eben eine Variable haben, in der du speicherst, ob du die Meldung schon ausgegeben hast oder nicht, die du dann vorher prüfst.
-
Ich würde das Programm wie folgt umstrukturieren:
int main(void) { int pin[] = {1, 2, 3, 4}; int input[4]; int i, pin_correct; for ( i = 0; i < 4; ++i ) { printf("Bitte gebe die %d-te Zahl des Pins ein: ", i + 1); scanf("%d", &input[i]); } pin_correct = 1; for ( i = 0; i < 4; ++i ) { if ( pin[i] != input[i] ) { pin_correct = 0; } } if ( pin_correct ) { puts("Zugriff"); } else { puts("Zugriff verweigert"); } return 0; }
-
Vielen Dank!
Problem ist wir dürfen nur print/scanf While/for, Array, If/else verwenden - alles weiter streicht die werte Dame gnadenlos durch.
-
Psychoztar schrieb:
Problem ist wir dürfen nur print/scanf While/for, Array, If/else verwenden - alles weiter streicht die werte Dame gnadenlos durch.
Mehr wird hier doch auch nicht benutzt.