Hallo Leute, wie baut man eigentlich in C ordentliche Vergleiche zusammen? Beispiel x <= y <= z geht das besser als if ((x <= y) && (y <= z)) ... ? Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten größer sein sollen als der vorhergehende Wert? Gibt es in c auch durchnummerierte Variable? Also z.b. int messwert1, meswert2, messwert3; int zaehler; while (zaehler < 3) { if (messwert[zaehler] <= messwert[zaehler + 1]) .... zeahler++; }
> geht das besser als > if ((x <= y) && (y <= z)) ... ? Was verstehst du unter "besser"? Kürzer kann man es jedenfalls nicht schreiben. > Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten > größer sein sollen als der vorhergehende Wert? Das würde ich in einer Schleife schreiben. > Gibt es in c auch durchnummerierte Variable? > Also z.b. > > int messwert1, meswert2, messwert3; > int zaehler; zaehler erhält hier irgendeinen undefinierten Wert. > while (zaehler < 3) > { > if (messwert[zaehler] <= messwert[zaehler + 1]) .... > zeahler++; > } Ja, gibt es, aber man schreibt die Definition so:
1 | int messwert[3]; |
Allerdings fängt der Index bei 0 an.
>>wie baut man eigentlich in C ordentliche Vergleiche zusammen? >>Beispiel >>x <= y <= z >>geht das besser als >>if ((x <= y) && (y <= z)) ... ? >>Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten >>größer sein sollen als der vorhergehende Wert? ?? >>Gibt es in c auch durchnummerierte Variable? >>Also z.b. >> >>int messwert1, meswert2, messwert3; >>int zaehler; >> >>while (zaehler < 3) >>{ >>if (messwert[zaehler] <= messwert[zaehler + 1]) .... >>zeahler++; >>} Ja, gibt es, nennt sich "Array". Wird folgendermaßen deklariert.
1 | int messwert[3]; // Array mit 3 Elementen |
2 | int zaehler = 0; |
3 | while (zaehler < 3) |
4 | {
|
5 | if (messwert[zaehler] <= /* lieber nicht "messwert[zaehler + 1])", so kann man leicht Werte jenseits der definierten Arraygröße erwischen */ wasweißich...){...} |
6 | zaehler++; |
7 | }
|
mfg Lötlackl
>> Gibt es in c auch durchnummerierte Variable? >> Also z.b. >> >> int messwert1, meswert2, messwert3; >> int zaehler; > zaehler erhält hier irgendeinen undefinierten Wert. aber nicht im debug modus
>> zaehler erhält hier irgendeinen undefinierten Wert. > aber nicht im debug modus In Standard-C++ gibt es keinen "debug modus". Und eigentlich hoffe ich, daß nicht jeder Compiler so blöd implementiert ist. Es ist nämlich ziemlich nervig, wenn man einen Fehler im Programm hat, der im Debug-Modus nicht auftritt, weil der Compiler dort irgendwelche eigenmächtigen Initialisierungen durchführt.
also dass man Variablen vor deren Verwendung einen Wert zuweisen muss war früher immer so drum mache ich das auch heute nicht anders. ich habe es oben der Einfachheit halber weggelassen. Danke für die Tips.
flyingwolf wrote: > also dass man Variablen vor deren Verwendung einen Wert zuweisen muss > war früher immer so drum mache ich das auch heute nicht anders. Diese Pauschalaussage war zumindest für C sowohl früher schon falsch und ist es auch heute noch. Variablen mit statischer Speicherplatzvergabe werden auf 0 (oder 0.0 oder NULL) initialisiert. Das ist vom Standard so vorgegeben und damit eine Eigenschaft der Sprache, auf die man sich genauso verlassen kann und darf wie darauf, dass 1 / 2 = 0 ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.