Forum: Compiler & IDEs Vergleiche in C


von flyingwolf (Gast)


Lesenswert?

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++;
}

von Rolf Magnus (Gast)


Lesenswert?

> 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.

von Lötlackl (Gast)


Lesenswert?

>>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

von CCCCC (Gast)


Lesenswert?

>> 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

von Rolf Magnus (Gast)


Lesenswert?

>> 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.

von flyingwolf (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.