Ich brauche ein C-Programm, das die geradenZahlen von 1-100 auf dem Bildschirm ausgibt?

...komplette Frage anzeigen

3 Antworten

Dein erster Versuch sieht fast richtig aus (zumindest das, was man lesen kann), der einzige Fehler liegt darin, dass du die Variable "i" in der Schleife immer hochzählen willst und nicht nur dann, wenn es keine gerade Zahl ist.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von spaghetticode
26.10.2015, 13:18

Jap, sehe ich auch so. Den else-Zweig streichen und durch die einfache Anweisung "i++" ersetzen, ansonsten sieht das, was man erkennen kann, gut aus.

Alternativ könntest du i mit Null initialisieren und in der Schleife mit i = i + 2 direkt im Zweierschritt erhöhen, dann entfällt die Modulo-Prüfung ganz.

Könnte aber je nach Aufgabenstellung am Thema der Aufgabe vorbeigehen.

0
Kommentar von Wega94
26.10.2015, 13:21
#include <stdio.h>
int main(void)
{
int i=1;
while (i<=100){
if(i%2=0) printf("%d\n", i);
else i++;
}
}
0
Kommentar von Wega94
26.10.2015, 13:45

Danke Leute ich glaube ich habs geschafft, zumindest wird mir das richtige angezeigt.

0

Lass dir die Aufgabenstellung noch mal durch den Kopf gehen!

Das ganze kannst du viel cleverer lösen:

int i = 2;

while (i <= 100) {
printf("%d\\\\n", i);

i += 2;
}

Dafür benötigst du also weder if, noch Division oder Modulo.

Viel Spaß damit! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
26.10.2015, 16:03

Und so geht es sogar, völlig ohne Variablen und Schleifen:

puts("2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100");
1

Mein bisheriger Versuch

 - (Schule, programmieren, Programmierung)
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mikkey
26.10.2015, 13:22

Lass das "else" weg

% ist nicht "ganzzahlige Division", die Abfrage sollte eher heißen:

((i/2)*2 == i)

0
Kommentar von Wega94
26.10.2015, 13:28

also irgendwie klappt es bei mir nicht

0

Was möchtest Du wissen?