Ricerca appunti sul web

Ricerca personalizzata

sabato 28 febbraio 2009

Sorgenti c : Stringhe e Conversioni

Scrivere un programma che presa in
input una base n ed una stringa che rappresenta un numero in base n converta la
stringa in numero in base decimale.

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

int convertiBase(int base, char* testo);
int potenza(int n, int m);

int main()
{
int base=0;
char string[255];

scanf("%d",&base);
scanf("%s", string);
if (convertiBase(base, string) != 999)
printf("%d", convertiBase(base, string));
return 0;
}

int convertiBase(int base, char* testo)
{
int L=0;
int ato=0;
int a=0;
int cif=0;
int tot=0;
int count=0;
int set=0;
int bar=0;
int i=1;

while (testo[i]!='')
{
if (testo[i] == '+' || testo[i] == '-')
return 999;
i++;
}

L=strlen(testo);
ato=atoi(testo);
count=L;

while(count > 0)
{
set=count-1;
a = potenza(10,set);
//printf("%dn",a);
cif=(ato/a)%10;
//printf("%dn",cif);
bar = potenza(base,set);
tot += cif*bar;
//printf("%dn",tot);
count--;
}
return tot;
}

int potenza(int x, int y)
{

if (x==0) {
return 0;
}
if (y==0) {
return 1;
}
return (x * potenza(x, y-1));
}

0 commenti: