eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

C vieno skaičiaus (nežinant kiek jis turi skaitmenų) skaidymas


Sveiki užstrigau su vienu uždaviniu, gal kas geriau supranta programavima galėtu padėt? :)


Klaviatūra įvedami sveikieji skaičiai a ir b. Nustatykite kurio skaičiaus skaitmenų sandauga mažesnė(nulį atmeskite).

O čia kaip suprasti, ar skaičius negali būti 0, ar jei skaitmuo turi 0, tai juos tiesiog praleisti ir dauginti nenulinius skaitmenis?

Reikia rasti skaiciaus skaitmenu sandauga, bet kad sandauga nebutu 0, tai jei vienas skaitmuo 0, jo nereikia sudauginti.

pakeista prieš 9 m

Ši funkcija daugina visus skaičiaus skaitmenis, praleisdamas 0 (pradiniai duomenys: skaičius, kurio skaitmenų sandauga skaičiuojama, rezultatas - skaitmenų sandauga)
int SkaitmenuSandauga(int sk)
{
int sandauga=1;
while(sk>0)
{
if (sk%10!=0) sandauga*=sk%10;
sk/=10;
}
return sandauga;
}

Ačiū :)

Norėjau pasitikslinti ar užrašas sandauga*=sk%10 tas pats kaip sandauga=(sandauga*sandauga)*(sk%10)
ir sk/=10  yra sk=sk/10?

sandauga*=sk%10 tas pats, kas sandauga=sandauga*(sk%10), o dėl antro užrašo tu teisus.

Kažkur įsivėlė klaida, manau skaitmenų sandaugos funkcijoje. Meta belekokius skaičius.
#include <iostream>

using namespace std;
void Ivestis(int A, int B);
void SkaitmenuSandauga(int A, int B, int & SanA, int & SanB);
void Spausdinimas (int A, int B, int SanA, int SanB);
int main()
{
int A, B;
int SanA=1;
int SanB=1;
Ivestis(A, B);
SkaitmenuSandauga(A, B, SanA, SanB);
Spausdinimas(A, B, SanA, SanB);
    return 0;
}

void Ivestis(int A, int B){
cout<<"Iveskite skaiciu A:"<<endl;
cin>>A;
cout<<"Iveskite skaiciu B:"<<endl;
cin>>B;
cout<<""<<endl;
cout<<"Skaicius A: "<<A<<";  Skaicius B: "<<B<<endl;
}

void SkaitmenuSandauga(int A, int B, int & SanA, int & SanB){

    while (A>0){
        if(A%10!=0){
            SanA=SanA*(A%10);
            A=A/10;
            }
}

    while (B>0){
        if(B%10!=0){
            SanB=SanB*(B%10);
            B=B/10;
            }
}

}

void Spausdinimas (int A, int B, int SanA, int SanB){
cout<<""<<endl;
cout<<"Skaiciaus A skaitmenu sandauga:"<<SanA<<endl;
cout<<"Skaiciaus B skaitmenu sandauga:"<<SanB<<endl;
if(A>B){
    cout<<"Skaiciaus A skaitmenu sandauga didesne: "<<A<<">"<<B<<endl;
}
else if (B>A){
    cout<<"Skaiciaus B skaitmenu sandauga didesne: "<<B<<">"<<A<<endl;
}
else if (A==B){
    cout<<"Skaiciu A ir Bskaitmenu sandauga lygi: "<<A<<"="<<B<<endl;
}
}

pakeista prieš 9 m

Pataisiau:
#include <iostream>

using namespace std;
void Ivestis(int&, int&);
void SkaitmenuSandauga(int A, int B, int & SanA, int & SanB);
void Spausdinimas (int A, int B, int SanA, int SanB);
int main()
{
int A, B;
int SanA=1;
int SanB=1;
Ivestis(A, B);
SkaitmenuSandauga(A, B, SanA, SanB);
Spausdinimas(A, B, SanA, SanB);
    return 0;
}

void Ivestis(int &A, int &B){
cout<<"Iveskite skaiciu A:"<<endl;
cin>>A;
cout<<"Iveskite skaiciu B:"<<endl;
cin>>B;
cout<<""<<endl;
cout<<"Skaicius A: "<<A<<";  Skaicius B: "<<B<<endl;
}

void SkaitmenuSandauga(int A, int B, int & SanA, int & SanB){

    while (A>0){
        if(A%10!=0){
            SanA=SanA*(A%10);
            A=A/10;
            }
        else A/=10;
}

    while (B>0){
        if(B%10!=0){
            SanB=SanB*(B%10);
            B=B/10;
            }
        else B/=10;
}

}

void Spausdinimas (int A, int B, int SanA, int SanB){
cout<<""<<endl;
cout<<"Skaiciaus A skaitmenu sandauga:"<<SanA<<endl;
cout<<"Skaiciaus B skaitmenu sandauga:"<<SanB<<endl;
if(SanA>SanB){
    cout<<"Skaiciaus A skaitmenu sandauga didesne: "<<SanA<<">"<<SanB<<endl;
}
else if (SanB>SanA){
    cout<<"Skaiciaus B skaitmenu sandauga didesne: "<<SanB<<">"<<SanA<<endl;
}
else if (SanA==SanB){
    cout<<"Skaiciu A ir Bskaitmenu sandauga lygi: "<<SanA<<"="<<SanB<<endl;
}
}

pakeista prieš 9 m

Ačiū :)

pakeista prieš 9 m

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