eMatematikas Prisijunk Forumas VBE užduotys ONLINE testai

Šešiaženklis skaičius, 3 ir 5 išbraukti.


Užduotis: Šešiaženklis skaičius reikia 3 ir 5 išbraukti(pvz: 12345, tai turi rašyti 124)
Uždavinį suprantu, bet neįsivaizduoju kaip padaryti, kad būtent tų skaičių nerodytų.

int sesiazenklis;
int a1, a2, a3, a4, a5, a6;
int x, y;

cout << "Įveskite šešiaženklį skaičiu: ";
cin >> sesiazenklis;

a1 = sesiazenklis % 10;
a2 = sesiazenklis / 10 % 10;
a3 = sesiazenklis / 100 % 10;
a4 = sesiazenklis / 1000 % 10;
a5 = sesiazenklis / 10000 % 10;
a6 = sesiazenklis / 100000 % 10;
if (a1 == 3 || a1 == 5){

}else{
   
}

if (a2 == 3 || a2 == 5){
     
}else{
   
}

if(a3 == 3 || a3 == 5){
   
}else{
       
}

if (a4 == 3 || a4 == 5){
     
}else{
     
}

if (a5 == 3 || a5 == 5){
     
}else{
       
    }

    if (a6 == 3 || a6 == 5){

    }else{

    }



return 0;
}

pakeista prieš 6 m

While ciklą moki?

Jei moki tai pabandyk šį kodą:
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
int sesiazenklis;
cout << "Iveskite sesiazenkli skaiciu";
cin >> sesiazenklis;
int naujas;
int k=1;
while(sesiazenklis>0)
{
if((sesiazenklis%10)!=3&&(sesiazenklis%10)!=5) {
naujas+=k*(sesiazenklis%10);
k*=10;
}
sesiazenklis/=10;

}
cout << naujas;
return 0;
}

Aukščiau užrašytas kodas yra universalesnis, jis tinka netik šešiaženkliams skaičiams, gali pamėginti įvesti ir kitokius, visvien suveiks.
Jei ciklų nemoki, tada galimas toks variantas, čia jau konkrečiai šešiaženklio skaičiaus atveju:
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
int sesiazenklis;
cout << "Iveskite sesiazenkli skaiciu";
cin >> sesiazenklis;
int a1 = sesiazenklis % 10;
int a2 = sesiazenklis / 10 % 10;
int a3 = sesiazenklis / 100 % 10;
int a4 = sesiazenklis / 1000 % 10;
int a5 = sesiazenklis / 10000 % 10;
int a6 = sesiazenklis / 100000 % 10;
if(a6!=3&&a6!=5) cout << a6;
if(a5!=3&&a5!=5) cout << a5;
if(a4!=3&&a4!=5) cout << a4;
if(a3!=3&&a3!=5) cout << a3;
if(a2!=3&&a2!=5) cout << a2;
if(a1!=3&&a1!=5) cout << a1;
return 0;
}

Dėkui, deja, dar mokykloje negaliu naudotis "while" ciklu. Tai jeigu uždavinys "Penkiaženklis skaičius, surašyti kurie dalinasi iš 5."

// "Penkiaženklis skaičius, surašyti kurie dalinasi iš 5."

#include <iostream>

using namespace std;

int main()
{
int penkiazenklis;
int a1, a2, a3, a4, a5;

cout << "Iveskite penkiazenkli skaiciu: ";
cin >> penkiazenklis;

a1 = penkiazenklis % 10;
a2 = penkiazenklis / 10 % 10;
a3 = penkiazenklis / 100 % 10;
a4 = penkiazenklis / 1000 % 10;
a5 = penkiazenklis / 10000 % 10;

    if(a1 == 0 || a1 == 5){
        cout << a1;
    }

    if (a2 == 0 || a2 == 5){
        cout << a2;
    }

    if (a3 == 0 || a3 == 5){
        cout << a3;
    }
    if (a4 == 0 || a4 == 5){
        cout << a4;
    }
    if (a5 == 5){
        cout << a5;
    }

return 0;
}

Tu nuskaitinėji skaitmenis nuo dešinės į kairę, tai tuomet tikrinimas turi prasidėti nuo a5 ir baigtis a1, kitaip tu gausi išrašytus skaičius atvirkščia tvarka. Žinoma gali pakeisti skaitmenų nuskaitymo tvarką.

Aišku nežinau tiksliai uždavinio sąlygos gal tvarka nesvarbi, tada tinka ir taip.

pakeista prieš 6 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »