View Single Post
Old 26-04-2002, 17:05   #7
alexmaz
Senior Member
 
L'Avatar di alexmaz
 
Iscritto dal: Jan 2000
Cittā: Milano
Messaggi: 1034
Quote:
Originariamente inviato da MickMacello
[b]ESERCIZIO 3-5

Scrivete una funzione itob(n,a,b) che converte l' intero n nella corrispondente sequenza di caratteri in base b e mette in s la stringa risultante.

void itob(int n,char s[], int b){
int i,sign;
char alfabeto[36];
for(i=0;i<=9;i++)
alfabeto[i]=i+'0';
for(i=10;i<=36;i++)
alfabeto[i]=i+'A'-10;
sign= (n>=0) ? 1 : -1;
i=0;
do
s[i++]=alfabeto[sign*(n%b)];
while ((n/=b)*sign);
if (sign<0)
s[i++]='-';
s[i]='
Quote:
Originariamente inviato da MickMacello
ESERCIZIO 3-5

Scrivete una funzione itob(n,a,b) che converte l' intero n nella corrispondente sequenza di caratteri in base b e mette in s la stringa risultante.

void itob(int n,char s[], int b){
int i,sign;
char alfabeto[36];
for(i=0;i<=9;i++)
alfabeto[i]=i+'0';
for(i=10;i<=36;i++)
alfabeto[i]=i+'A'-10;
sign= (n>=0) ? 1 : -1;
i=0;
do
s[i++]=alfabeto[sign*(n%b)];
while ((n/=b)*sign);
if (sign<0)
s[i++]='-';
s[i]='\0';
reverse(s);
}
';
reverse(s);
}
Codice:
void itob(int n, int b, char s[]){
	int i, sign;
	char c;
	sign = (n >= 0) ? 1 : -1;
	i = 0;
	do {
		s[i++] = sign * (n % b) + 'a' - '1';
	} while ((n /= b)*sign);
	if (sign < 0)
		s[i++] = '-';
	s[i] = '\0';
	reverse(s);
}
alexmaz č offline   Rispondi citando il messaggio o parte di esso