22/12/09 10:01
il-david
Buongiorno a tutti. Sono uno studente di Ing. dell'Informazione e tra 3 settimane circa ho l'esame di Fondamenti. Sto sbattendo da un pò di giorni su questa traccia d'esame:
1-Scrivere una funzione in C che riceve in input 2 interi(b e n con n>0 e 2<=b<=36) . La funzione stampa a video i numeri da 0 a n allineati a destra e su 2 colonne, espressi con la base indicata da b utilizzando, a seconda di b, i simboli 0,1,2...,9,a,b,c,....,z
Es.
b=3, n= 7
0 1
2 10
11 12
20 21
Questo è un mio abbozzo, ma non funzionante:
2- Il secondo esercizio è in C++ e lo posto nell'apposita sezione(pierotofy.it/pages/extras/forum/…=)
Vi ringrazio di cuore e vi auguro buone feste
1-Scrivere una funzione in C che riceve in input 2 interi(b e n con n>0 e 2<=b<=36) . La funzione stampa a video i numeri da 0 a n allineati a destra e su 2 colonne, espressi con la base indicata da b utilizzando, a seconda di b, i simboli 0,1,2...,9,a,b,c,....,z
Es.
b=3, n= 7
0 1
2 10
11 12
20 21
Questo è un mio abbozzo, ma non funzionante:
#include <stdio.h> #include <stdlib.h> void f(int b, int n); int main() { int base, numero; printf("Inserisci la base: "); scanf("%d", &base); printf("\nInserisci il numero: "); scanf("%d", &numero); printf("\n"); f(base, numero); system("pause"); return 0; } void f(int b, int n) { int i, j, k, r[8], z, **m; /* r è il vettore che contiene i numeri convertiti su 8 bit */ if(n>0 && b>=2 && b<=36) { m=(int**)malloc(((n/2)+1)*sizeof(int*)); for(i=0; i<((n/2)+1); i++) m[i]=(int*)malloc(2*sizeof(int)); z=0; r[0]=(n%b); k=n/b; while(k!=0) { z++; r[z]=(k%b); k/=b; } for(i=0; i<((n/2)+1); i++) { for(j=0; j<2; i++) { for(z=8; z=0; z--) m[i][j]=r[z]; printf("%d", m[i][j]); } printf("\n"); } } }
2- Il secondo esercizio è in C++ e lo posto nell'apposita sezione(pierotofy.it/pages/extras/forum/…=)
Vi ringrazio di cuore e vi auguro buone feste
Ultima modifica effettuata da il-david 22/12/09 10:08
aaa