Commit d323614b by Jürgen Hein

Lisatud kommentaarid, vastus õiget pidi. ArvuAlusteTeisendamine.c

parent 4bb4faed
Showing with 27 additions and 25 deletions
/* Arvu aluste teisendamine. /* Arvu aluste teisendamine.
...@@ -9,15 +9,15 @@ ...@@ -9,15 +9,15 @@
int main(void) int main(void)
{ {
char arv[SUURUS]; // char arv[SUURUS]; //tähemassiiv algse arvu numbrite jaoks
char l6pp[SUURUS]; // char l6pp[SUURUS]; //tähemassiiv otsitava arvu numbrite jaoks
int a; //küsitav arvu algne alus int a; //küsitav arvu algne alus
int b; //küsitav uue arvu alus int b; //küsitav uue arvu alus
int t; //liikmete arv massiivis (alg) int t; //liikmete arv massiivis
int i; int i;
int algbase; //arvu algne alus int algbase; //arvu algne alus
int l6ppbase; //uue arvu alus int l6ppbase; //uue arvu alus
int result; int result; //leitud liidetavate summa
int mult; //kordaja, võrdne algse aluse numbrilise väärtusega int mult; //kordaja, võrdne algse aluse numbrilise väärtusega
do do
...@@ -32,7 +32,7 @@ int main(void) ...@@ -32,7 +32,7 @@ int main(void)
} while (a == 0); } while (a == 0);
do do
{ {
printf("Sisestada muutuja b"); //uue arvu alus printf("Sisestada muutuja b"); //otsitava arvu alus
scanf("%d", &b); scanf("%d", &b);
} while (b == 0); } while (b == 0);
...@@ -41,7 +41,7 @@ int main(void) ...@@ -41,7 +41,7 @@ int main(void)
result=0; result=0;
mult=1; mult=1;
if(algbase<2 || algbase>36) if(algbase<2 || algbase>36) //kontroll, kas alus antud vahemikus
{ {
printf("Esines viga!"); printf("Esines viga!");
} }
...@@ -53,11 +53,7 @@ int main(void) ...@@ -53,11 +53,7 @@ int main(void)
if(algbase==l6ppbase) //Kui algne alus on sama, mis uue arvu alus if(algbase==l6ppbase) //Kui algne alus on sama, mis uue arvu alus
{ {
for(i=0;i < t;i++) printf("Otsitav arv on %s",arv);
{
arv[i]=l6pp[i];
i++;
}
} }
for(i=t-1;i>=0;i--) //tsükkel kas i>=0? for(i=t-1;i>=0;i--) //tsükkel kas i>=0?
...@@ -78,31 +74,37 @@ int main(void) ...@@ -78,31 +74,37 @@ int main(void)
{ {
printf("Esines viga!"); printf("Esines viga!");
} }
result = result + mult*t; result = result + mult*t; //jooksvalt leitud liidetavate liitmine
mult = mult * algbase; //kordaja, mis võrdne algse alusega mult = mult * algbase; /*arvuga korrutatavate liikmete astmete suurendamine
nt 10^1...10^2...10^3.. */
} }
i=0; i=0;
if(result==0) // if(result==0) //kui kogusumma on 0
{ {
l6pp[i++]='0'; // l6pp[i++]='0'; //määratakse l6ppväärtuseks 0
l6pp[i]='\0'; // l6pp[i]='\0'; //massiivis lugemise lõpetamine
}else }else
{ {
while(result>0) while(result>0) //liidetavate kogusumma ei ole 0
{ {
if (result % l6ppbase < 10) if (result % l6ppbase < 10) //jääk on väiksem kui 10
{ {
l6pp[i++]= '0' + (result % l6ppbase); l6pp[i++]= '0' + (result % l6ppbase);//järgmise liikme leidmine
}else }else
{ {
l6pp[i++] = 'A' + (result % l6ppbase - 10); l6pp[i++] = 'A' + (result % l6ppbase - 10); //jääk on suurem kui 10, seega leitakse täht, mis vastab arvule nt 16-süsteemis
} }
result /= l6ppbase; result /= l6ppbase; //viimane number arvus kaotatakse, ilma jäägita jagamine
} }
l6pp[i]='\0'; l6pp[i]='\0'; //massiivis liikumise lõpetamine
} }
printf("%s on alusel %d",l6pp,l6ppbase); //Väljastus
printf("Otsitav arv on: "); //loop, mis liigub tagurpidi arvus
for(i=strlen(l6pp)-1;i>=0;i--) //töötab nii mitu korda kui on arve massiivis l6pp
{
printf("%c",l6pp[i]);
}
printf("alusel %d",l6ppbase); //Otsitav alus
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment