Ungerade Zahlen in C realisieren
-
Hallo liebe Leser...
Mir wurde die aufgabe gestellt ein C-Programm zu schreiben welches die eingabe einer ungeraden zahl zwischen 81 und 120 erlaubt. Desweiteren soll, wenn sie dreistellig ist durch 3 ohne rest teilbar sein.
Nun soll ich ein prog schreiben welches diese bedingungen testet und ausgibt ob sie den bed nun entspricht oder nicht...!!!
Nun meine frage. wie kann ich die ungeraden zahlen als eingabe realisieren...?mein grundgedanke wäre zu prüfen, ob die zahl ohne rest durch 2 teilbar ist!
doch leider besitze ich nicht genügend kenntnisse dies zu realisieren!?!kann mir dabei evtl jemand auf die sprünge helfen, oder sagen ob ich so auf dem richtigen weg bin?
Danke im Voraus!!!
MFG Flo
-
Dann realisiere mal ein bischen mit dem Modulo-Operator %
-
if(zahl >= 81 && zahl <= 120 && zahl%2==1 && (zahl<100 || zahl%3==0)) std::cout << "Ja." << endl; else std::cout << "Nein." << end;
-
Huch, war ja das C-Forum... in diesem Falle bitte auf std::cout verzichten, waren eh Hektik-Fehler drin
-
ungeraden zahl zwischen 81 und 120 erlaubt.
zwischen 81 und 120 ...
Test ob die Zahl im Inetrvall 81 bis 120 liegt:
if ( zahl > 81 && zahl < 120) printf( " paßt!");
Feststellen ob's eine ungerade Zahl ist:
if ( zahl & 1) printf ( " ungerade");
Mal schauen ob die durch 3 teilbar ist:
if ( zahl % 3) printf ( " nicht durch 3 teilbar");
Kombier das einfach ...
-
guitar.flo schrieb:
Desweiteren soll, wenn sie dreistellig ist durch 3 ohne rest teilbar sein.
teilbarkeitsregeln: die summe der ziffern muss durch 3 teilbar sein, dann ist die zahl selber auch durch 3 teilbar. aber testen ob (x%3) == 0 ist wohl programmtechnisch einfacher.
-
Ey Alda - voll Pisa :-)))))))))))))))
(stimmt aber, ist mir völlig entfallen
-
Scheppertreiber schrieb:
Ey Alda - voll Pisa :-)))))))))))))))
nee, voll zufall. ich hab' was ähnliches vor'n paar wochen gebraucht, deshalb wusst ich's noch. und 99% aller menschen, die die 6te klasse weit hinter sich gelassen haben, haben das mit sicherheit auch vergessen.
-
Erst einmal danke für die zahlreichen antworten!!!
Also hab mal ein bissl versucht und probiert....
mein grundgedanke würde dabei so aussehen...:# include <stdio.h>
main ()
{
int z1;
printf("Bitte Zahl > 81 und <= 120 eingeben: ");
scanf ("%d",&z1);if (z1>81 && z1<121);
{
if ((z1%2==1)&&(z1>99||z1%3==0))
printf ("Die %d erfuellt die Bedingung!", z1);
}else
printf("\n Die Zahl ist nicht zulaessig!\n");}
... doch leider geht das noch nicht ganz.
Ich sollte noch dazu sagen das die einzelnen abfragen in der printf zusammengefasst mit zulässig oder nicht zulässig wieder gegeben werden sollen.
Nun weiß ich nicht ob es am logischen liegt oder am formalen?!?!?!Hab nun schon mehrere sachen versucht, komme allerdings nicht weiter wenn ich die abfragen zusammen füge zu einer aussage...
Sorry meine c kentnisse gehen gegeh null und ich muss mich erstmal in die programmiergeschichte reinfuchsen...
-
if ( (z1%2==1) && // ungerade (z1>99 || z1%3==0))
Das kann so nicht klappen. Mach es doch einfach so:
if (z1%2 == 1) { // ungerade printf ("Zahl ist ungerade"); if (z1>99 && z1%3 == 0) printf ("Bedingung 2 auch erfuellt"); }
-
so hab ich nun auch versucht, geht leider auch nicht was ist daran noch falsch??
include <stdio.h>
main ()
{
int z1;
printf("Bitte Zahl > 81 und <= 120 eingeben: ");
scanf ("%d",&z1);if (z1%2 == 1)
{ // ungerade
printf ("Zahl ist ungerade");
if (z1>99 && z1%3 == 0)
printf ("Bedingung 2 auch erfuellt");
}else
printf("\n Die Zahl ist nicht zulaessig!\n");}