Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

c++ 11kl užduotis


Shiv3r

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2355 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, padariau programą, kaip mokytojas prašė (C++ mokinuos individualiai, pats, nes turiu tik vieną savaitinę pamoką, nėra sąlygų sudaryt daugiau A lygiu. Programuoju nuo rugsėjo pradžios). 

Mokytojas paskyrė užduotį, sukurti programą kuri atpažintų keturženklį skaičių ir jį atvaizduotų iš kitos pusės (Pvz: 1234 - 4321). 

Gerai, viskas normaliai, išgaunu kiekvieną skaičių, beeet norėjau paklaust dviejų klausimų, gal žinot kaip tą  gautą skaičių galima deklaruot? Ta prasme kokią jam tada reikšmę priskirt kad atvaizduojant nereiktų rašyt: << d << c << b << a << , o tiesiog vieną kintamąjį? 

Btw noriu paklaust kaip apsaugot programą nuo įvesto neketurženklio skaičiaus, any ideas?

kodas:

 

#include <iostream>

using namespace std;

int main()
{
    int skaicius;

    cout << "Iveskite skaiciu: " ;
    cin >> skaicius;

    int a = skaicius / 1000, b = skaicius / 100 % 10, c = skaicius / 10 % 10, d = skaicius % 10;

    cout << "Skaicius is kitos puses: " << d << c << b << a << endl;
}

 

 

EDIT: 

 

apsaugą sukūriau, beliko tik tas kintamasis :///

 

#include <iostream>

using namespace std;
int main()
{
    int skaicius;
        cout << "Iveskite skaiciu sudaryta is keturiu skaitmenu: ";
            cin >> skaicius;

    int a = skaicius / 1000, b = skaicius / 100 % 10, c = skaicius / 10 % 10, d = skaicius % 10;
    
    if (skaicius <= 9999)
        cout << "Skaicius is kitos puses: " << d << c << b << a << endl;
    else
        cout << "Skaicius turi but keturzenklis!" << endl;
}

 

Redaguota , nario Shiv3r
Nuoroda į komentarą
Dalintis per kitą puslapį

Tavo 'apsauga' nekokia, nes žmogus gali įvesti skaičių 1 ir jį laikys kaip keturženklį.

Pakeisk:

if (skaicius <= 9999)

Į:

if ( skaicius > 999 && skaicius < 10000 )

Plius, nebūtų geriau tikrinti, ar skaičius keturženklis prieš visą skaičiavimą, kad bereikšmiškai neapkrautum programos?

O norint sujungti visus skaičius (https://stackoverflow.com/a/2611223/7115125):

int Combine( int a, int b )
{
	int times = 1;

	while ( times <= b )
	{
		times *= 10;
	}

	return a * times + b;
}

 

Redaguota , nario Memories
Nuoroda į komentarą
Dalintis per kitą puslapį

Pas tave apsauga nesuveikt, jei įvesi neigiamą skaičių (nebent tai būtų validu) ar mažesnį. Žodžiu, yra ką taisyti...

Del bendro kintamojo, tai:

int rezultatas = skaicius % 10 * 1000 + skaicius / 10 % 10 * 100 + skaicius / 100 % 10 * 10 + skaicius / 1000 % 10;

cout << "Skaicius is kitos puses: " << rezultatas << endl;

Redaguota , nario Developer
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2355 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...