Variablenvergleich, wie???
-
Hallo zusammen!
ich brauche bitte eure Hilfe bei einem Variblenvergleich. Ich habe in meinem Programm ein array Laenge[m] programmiert. Je nach dem was der Benutzer eingibt für m habe ich also mehrere Werte für Laenge.
Ich möchte jetzt die einzelnen Werte von Laenge [m] vergleichen und den größten rausfinden. Ich weiß nur leider nicht wie ich das programmieren kannKann mir da wohl jemand weiterhelfen?
Vielen Danke schonmal
-
Hallo, vielleicht hift etwas Pseudocode:
max = Laenge[0], i=1 solange i < m: wenn Laenge[i] > max dann max = Laenge[i] i = i + 1
Gruß,
B.B.
-
also ich versteh nicht ganz was du willst aber so könnts klappen
#include <stdio.h> #include <stdlib.h> int findMin(int *arr, int l){ int ret; int buffer; if(l--){ ret = arr[l]; while(l--) if(ret > (buffer = arr[l])) ret = buffer; } } int findMax(int *arr, int l){ int ret; int buffer; if(l--){ ret = arr[l]; while(l--) if(ret < (buffer = arr[l])) ret = buffer; } return ret; } int main(void){ int arr[] = {7,9,1,2,3,4}; int l = 6; printf("min:%d\nmax:%d" ,findMin(arr,l) ,findMax(arr,l) ); return 0; }
lg lolo
-
ups zwischen z.12 und z.13 fehlt ein "return ret;" wieso kam da keine warnung
lg lolo
-
danke B.B., ich glaube das hat mir weitergeholfen.
ich versuche es mal umzusetzen
-
noobLolo schrieb:
ups zwischen z.12 und z.13 fehlt ein "return ret;" wieso kam da keine warnung
lg lolo
Vielleicht ist deine Warnstufe auf ganz klein, oder hast die Warnung übersehen?
-
noobLolo schrieb:
ups zwischen z.12 und z.13 fehlt ein "return ret;" wieso kam da keine warnung
lg lolo
In VC++ 2010 kommt sogar eine Error-Message, und man kann die Applikation ohne das Hinzufügen von
return ret
nicht compilieren.
-
#include <stdlib.h> #include <stdio.h> int main(){ int* Laenge; unsigned m; unsigned i; unsigned max; printf("m = "); if(scanf("%d", &m) != 1 || !m) return 0; /* Fehlerhafte Eingabe */ if((Laenge = (int*) malloc(m * sizeof(int))) == NULL) return 0; /* Kein Speicher mehr. */ i = 0; do{ printf("Laenge[%d] = ", i); }while(scanf("%d", Laenge + i) == 1 && ++i < m); if(i < m) return 0; /* Fehlerhafte Eingabe */ max = 0; i = 1; while(i < m){ if(Laenge[i] > Laenge[max]) max = i; ++i; } printf("Der groesste Wert war Laenge[%d] = %d", max, Laenge[max]); getchar(); /* Entfernt das Newline Zeichen vom letzten scanf() Aufruf aus dem Eingabe-Buffer */ getchar(); /* Verhindert die Schliessung des Konsolenfensters, bis etwas eingegeben wurde */ return 0; }