Potreboval by som pomoct, s desatinou ciarkou.
Existuje nejaky sposob ako ju posunut s urcitim poctom desatinnych miest bez toho aby som pouzil delenie?
napr. ide o cislo 33 a chcem mat z neho 0.33
vlastne potrebujem pred nejake cislo dostat nulu s ciarkou.
kniznicu pouzivam len stdio.h
som uplny zaciatocnik, skusenosti (ake take) mam len s pascalom.
ak tu je podobna tema tak, prepacte za spam (no nenasiel som nic take)
Posunutie desatinnej ciarky v C
mno ono mam vytvorit kalkulacku, a v nej funkcie nasobenie, delenie, mocnina len pomocou znamienok + a -.
a dokazal som spravit akurat tak celociselny podiel, a zvysok
napr. 16 / 5 = 3 zv 1
a chcem to spravit tak ze ten zvysok vynasobim celociselne (na co mam uz funkciu) napr. 100(ked chcem mat 2 desatinne miesta) a potom to celociselne videlim 5... dostanem cislo 20... a toto cislo potrebujem dostat za desatinnu ciarku a potom ho scitat s tou 3 a tym ziskam cislo 3.2
s tym nasobenim 10^cislo... tiez nemozem, lebo funkciu nasobenie s real cislami mam tiez tak osetrenu ze posledny krok je delenie.. a toho sa musim zbavit
dufam ze som sa vyjadril dost jasne
pre istotu zdrojak na delenie:
a dokazal som spravit akurat tak celociselny podiel, a zvysok
napr. 16 / 5 = 3 zv 1
a chcem to spravit tak ze ten zvysok vynasobim celociselne (na co mam uz funkciu) napr. 100(ked chcem mat 2 desatinne miesta) a potom to celociselne videlim 5... dostanem cislo 20... a toto cislo potrebujem dostat za desatinnu ciarku a potom ho scitat s tou 3 a tym ziskam cislo 3.2
s tym nasobenim 10^cislo... tiez nemozem, lebo funkciu nasobenie s real cislami mam tiez tak osetrenu ze posledny krok je delenie.. a toho sa musim zbavit
dufam ze som sa vyjadril dost jasne
pre istotu zdrojak na delenie:
#include <stdio.h>
int main()
{
double a,b,z,v,i,j,c,x,k;
printf("zadaj prve cislo\n");
scanf("%lf", &a);
printf("zadaj druhe cislo\n");
scanf("%lf", &b);
z=a;
v=a;
c=0;
while (z>=0) //cyklus na vyratanie zvysku - mod
{
z=z-b;
}
z=z+b;
for (i=0; v>=0; i++) //celociselny podiel - div
{
v=v-b;
}
i--;
printf("vysledok je %lf\n", i);
printf("zvysok je %lf\n", z);
for (j=0; j<=100; j++) // nasobenie zvysku o 100 - 2 desatinne miesta
{
c=c+z;
}
x=c;
for (k=0; x>=0; k++) // delenie tohto cisla, celeciselne - div
{
x=x-b;
}
k--;
printf("zvysok po deleni %lf\n", k);
k=k/100; // a toto musim poriesit... ako dostat z cisla xy cislo 0.xy ??
printf("Celkovy vysledok je %lf\n", k+i);
return 0;
}