Hogyan kell ezt a programot elkésziteni codeblocks-ban?
Olvassunk be a standard bemenetről egy ötjegyű egész számot (lehet pozitív és negatív is). Ha a szám nem felel meg a feltételeknek, akkor hibajelzéssel lépjünk ki!(Azt nem kell megvizsgálni, hogy egész-e, elegendő azt vizsgálni, hogy ötjegyű-e.)Ha megfelel a feltételeknek, akkor döntsük el a számról, hogy szimmetrikus-e! (Pl. az 12321 az szimmetrikus, a -78787 is az, de az 14323 az nem.)A döntés eredményét a kimeneten jelenítsük meg!(Megjegyzés: a programunk ne használjon ismétléses vezérlést, még akkor se, ha ismerjük a vezérlési szerkezet megvalósítását tavalyról –majd később általánosítjuk a problémát.Elegendő, ha kizárólag ötjegyű számokra működik.)
Példák:
Írj be egyötjegyűegész számot: -13831Szimmetrikus :)
Írj be egyötjegyűegész számot: 11321Nem szimmetrikus :(
Írj be egyötjegyűegész számot: 3443Hiba: a szám nem ötjegyű.
Mivel ki van kötve, hogy ne használjunk ciklusokat, nagyjából ennyi a feladat:
1. számjegy egyezzen meg az 5. számjeggyel (num % 10 == num / 10000)
2. számjegy egyezzen meg a 4. számjeggyel ((num/10)%10 == (num/1000)%10
Ha ez teljesül, akkor szimetrikus, különben nem az.
Át is lehet alakítani string-é, és akkor a string pozícióit kell vizsgálni.
#include <iostream>
using namespace std;
int main()
{
int otjegyu, num;
cout<<"adj meg egy 5jegyu szamot: !"<<endl;
cin>>otjegyu;
if((((num % 10 == num / 10000) || (num/10)%10 == (num/1000)%10))))
{
cout<<"a szam szimmetrikus!"<<endl;
}
else {
cout<<"a szam nem szimmetrikus!"<<endl;
}
return 0;
}
valami nem jó, de szerintem nem is jól csinálom...
Ránézésre 2 hiba van.
Egyrészt, nem vizsgálod, hogy 5 jegyű-e.
Másrészt, a jelenlegi if-ben te vagyot(||) használsz, miközben a két feltételnek egyszerre kell teljesülni vagyis és(&&) kell.
hogy tudom megvizsgálni azt, hogy a szám 5jegyű?
és (&&)-re már kijavitottam, köszi
if(szam>9999&&szam<100000)
igy?
#include <iostream>
using namespace std;
int main()
{
int szam, num;
cout<<"adj meg egy 5jegyu szamot: !"<<endl;
cin>>otjegyu;
if(szam>9999&&szam<100000) {
cout<<"ez a szam otjegyu!"<<endl;
cin>>szam;
{
else
cout<<"ez a szam nem otjegyu"<<endl;
cin>>szam
}
}
if((((num % 10 == num / 10000) && (num/10)%10 == (num/1000)%10))))
{
cout<<"a szam szimmetrikus!"<<endl;
}
else {
cout<<"a szam nem szimmetrikus!"<<endl;
}
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!