eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

Programa, kuri turi patikrinti, ar skaičius dalinasi iš savo skaitmenų.


Iskylo klausimas: programa betkokiu atveju meta kad nesidalina. O cia esme yra patikrinti ar skaicius dalinasi is visu savo skaitmenu:

#include <stdio.h>
#include <stdlib.h>

int main()
{

    int n,b,s1,s2,c;
    printf("Iveskite skaiciu \n");
    scanf("%d",&n);
        s1 = 0;
        s2 = 0;
        n = b;
        while (b > 0)
        {

            c = b%10;
            if ((c!= 0) && (n%c==0))
            s2 = s2 + 1;

            s1 = s1 + 1;
            b = b/10;
}
    if(s1==s2)
    printf("Dalinasi");
    printf("Nesidalina");
  return 0;
}

pakeista prieš 12 m

n = b
b tavo programoje vis dar neapibrėžtas. Tutbūt sumaišei vietomis. Bet jei tai pataisau - man tavo programa spausdina kad dalinasi ir kad nesidalina vienu metu ;( Aš tavo programos nelabai supratau (bet ir neitin stengiausi suprasti ;]). Čia mano versija - rodos veikia.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n; // vartotojo ivedamas skaicius
    int r; // paskutinis skaitmuo
    int q; // skaitmuo gaunamas is n pasalinus paskutini skaitmeni
    int dalinasi = false;
    printf("Iveskite skaiciu \n");
    scanf("%d",&n);
    q = n;
    while (q > 0) {
        r = q % 10;
        if ((r != 0) && (n%r == 0)) {    // tikriname ar r nelygus nuliui ir ar r dalina ivesta skaiciu be liekanos
            dalinasi = true;        // jei dalina - einame prie kito skaitmens
        } else {
            dalinasi = false;        // jei ne - uzbaigiame cikla
            break;
        }
        q = (q - r) /10; // pasaliname paskutini q skaitmeni
    }
    // spausdiname rezultatus:
    if (dalinasi) {
        printf("Dalinasi \n");
    } else {
        printf("Nesidalina \n");
    }
    return 0;
}

pakeista prieš 12 m

Yep, viskas ok, dekui labai, tiesa jis nesupranta tu true ir false todel kiek perdariau ir viskas ok. Ir is q atiminet r nera butina nes jeigu int tipas tai padalines is 10 jis ir iskirs skaitmeni be paskutinio skaitmens.

pakeista prieš 12 m

O kokia čia kalba? Aš kompiliavau kaip C++

Cia C kalba, tiesiog nepaminejau del to kad pamaniau kad is sintakses bus aisku :D. My bad.

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