Kleines Programmproblem

Hallo, ich möchte in meinem kleinen Programm hier noch gerne, das er nur die ungeraden Zahlen ausgibt. Leider weiß ich nicht wie ich das realisieren kann. Ich weiß zwar das die Zahlen ungleich %2 sein müssen, aber ich weiß eben leider nicht wie ich das umsetzen soll :confused: hoffe mir kann da jemand helfen =)
Hier der Code

#include 
#include 
#include 
#include 
#include 


int main(){
std::list l (100); //Liste mit 100 Elementen
for(std::list::iterator i=l.begin();i!=l.end();++i){
 \*i = std::rand()%101; //Zufallszahlen zw. 0 und 100
}
std::copy(l.begin(),l.end(), std::ostream\_iterator (std::cout, "\n"));

}

Hallo Ionel !

Einfach mit

if ((i % 2) != 0)

abfragen ?

mfg
Christof

=) das wusst ich auch, nur weiß ich leider nicht wie ich die werte dann wieder in der liste speichern kann. aber danke trotzdem :wink:

kleine Lösung :smile:
Hossa :smile:

Wenn ich dein Programm richtig verstanden habe, erzeugst du eine Liste mit 100 Elementen, in der Zufallszahlen von 0 bis 100 (einschließlich) eingetragen werden sollen, die aber alle ungerade sein müssen…

Dazu ersetze einfach die Zeile:

\*i = std::rand()%101; //Zufallszahlen zw. 0 und 100

durch die Zeile:

\*i = 2\*(std::rand()%50)+1; //ungerade Zufallszahlen zw. 1 und 99

Hier liefert std::rand()%50 eine Zufallszahl von 0 bis 49. Diese wird verdoppelt, also 0 bis 98 (aber nur gerade Zahlen). Dazu addierst du 1 und erhälst nur ungerade Zahlen von 1 bis 99 (einschließlich).

Viele Grüße

Hasenfuß

ahh genial =) einfach ne eins dazu addieren. so einfach kanns manchmal sein :wink: danke dir für deine hilfe!