Pereiti prie turinio

c programa (reikalinga pagalba)


Rekomenduojami pranešimai

http://www.part.lt/img/b06c2651a3b29bef376f93a4ed585a5f497.jpg

 

Sveiki, reiktu pagalbos darant 3. programą. Turiu pabandęs padaryt:

 

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

int main()
{
int lsk,i, m, n, ats, skaicKiek, vidinisI, ATS;
int skaitmenys[100];

printf("Iveskite intervalo rezius atskirdami juos tarpais: \n");
scanf("%d", &m);
scanf("%d", &n);


for ( i=m; i<= n; i++)
{
        lsk=i;
        skaicKiek=0;
        ats=0;
        ATS=0;
        while (lsk != 0)
        {
              ats=ats*10 + lsk%10;
              skaitmenys[skaicKiek]=lsk % 10;
              lsk=lsk / 10;
              skaicKiek++;
        }
        if(ats==i)
        {
                 printf("Skaicius yra palindrominis ir jis negali but tikrinamas\n");
        }
        else
        {
            for (vidinisI=0; vidinisI < skaicKiek; vidinisI++)
            {
                if(i%skaitmenys[vidinisI]==0 && ats%skaitmenys[vidinisI]==0)
                {
                      ATS++;
                }
            }
            if(ATS==skaicKiek)
            {
                 printf("%d Skaicius dalinasi is savo skaitmenu\n", i);
            }

       }
}
printf("\n");
system("pause");
return 0;
}

 

Programa veikia įvedus pvz [215:217], bet pvz įvedus [200:300] intervalą programa palūžta.

Redagavo INEC
Nuoroda į pranešimą
Dalintis kituose puslapiuose

 

na tai kompiliuok po biski kiekviena kintama ir ziurek ties kur uzstringa

http://www.part.lt/img/b06c2651a3b29bef376f93a4ed585a5f497.jpg

 

Sveiki, reiktu pagalbos darant 3. programą. Turiu pabandęs padaryt:

 

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

int main()
{
int lsk,i, m, n, ats, skaicKiek, vidinisI, ATS;
int skaitmenys[100];

printf("Iveskite intervalo rezius atskirdami juos tarpais: \n");
scanf("%d", &m);
scanf("%d", &n);


for ( i=m; i<= n; i++)
{
    	lsk=i;
    	skaicKiek=0;
    	ats=0;
    	ATS=0;
    	while (lsk != 0)
    	{
          	ats=ats*10 + lsk%10;
          	skaitmenys[skaicKiek]=lsk % 10;
          	lsk=lsk / 10;
          	skaicKiek++;
    	}
    	if(ats==i)
    	{
                 printf("Skaicius yra palindrominis ir jis negali but tikrinamas\n");
    	}
    	else
    	{
        	for (vidinisI=0; vidinisI < skaicKiek; vidinisI++)
        	{
            	if(i%skaitmenys[vidinisI]==0 && ats%skaitmenys[vidinisI]==0)
            	{
                  	ATS++;
            	}
        	}
        	if(ATS==skaicKiek)
        	{
                 printf("%d Skaicius dalinasi is savo skaitmenu\n", i);
        	}

       }
}
printf("\n");
system("pause");
return 0;
}

 

Programa veikia įvedus pvz [215:217], bet pvz įvedus [200:300] intervalą programa palūžta.

 

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

C, pataisiau ;)

 

per daug nesigilinau į patį programos kodą, tačiau užmetęs akį pamačiau, kad esi apsirašęs "int skaitmenys[100];", o tavo rėžiuose 101 skaitmuo. Žinoma jei programa kitoje dalyje veikia teisingai (randa tik pagal užduotį reikiamus skaičius), tai į šį rėžį skaitmenys turėtų tilpti. Bet siūlau pabandyti aprašyti masyvą tada kai jau žinai kiek rėžiuose yra skaitmenų (kai vartotojas įveda rėžius). Gal pagelbės mano pastabos.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nežinau žinok, kur bėda, bet nergi jei intervalas 10 skaičiu jau ir tai lužta.

 

Dalyba iš nulio rodos problema. Pasižiūrėk pabandžiau kažką perrašyt lyg ir erroro nebėra:

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

int reverseNumber(int number);
int checkIfDivisible(int number);

int main() {
   int m, n;

   printf("Iveskite intervalo rezius atskirdami juos tarpais: \n");
   scanf("%d %d", &m, &n);

   for (int i=m; i<= n; i++) {
       if(checkIfDivisible(i) == 2)
           printf("%d Skaicius dalinasi is savo skaitmenu\n", i);
       else if(checkIfDivisible(i) == 1)
           printf("%d Skaicius yra palindrominis ir jis negali but tikrinamas\n", i);
   }
   return 0;
}

int reverseNumber(int number) {
   int rev = 0;
   do {
       rev += number%10;
       rev*=10;
       number/=10;
   } while(number);


   return rev/10;
}

int checkIfDivisible(int number) {
   int rev = reverseNumber(number);

   if(rev == number)
       return 1;

   int temp = number;
   while(temp) {
       int nu = temp % 10;

       if(!nu || number % nu != 0 || rev % nu != 0)
           return 0;

       temp/=10;
   }

   return 2;
}

 

Redagavo internautas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...