salve, devo creare un programma che leggendo dei numeri decimali da un file li inserisca nella lista in versione binaria.
Dovrei stampare
EX.
il numero 2 in binario equivale a 10 e il 5 in binario 101
e invece stampa 10110
codice:
#include <stdio.h>
#include <stdlib.h>
#define MAX 15
struct s_nodo{
int *info;
struct s_nodo *next;
};
typedef struct s_nodo nodo;
typedef nodo *puntanodo;
void stampa(puntanodo lista);
int main(){
puntanodo ptesta;
puntanodo pcoda;
ptesta=NULL;
pcoda=NULL;
FILE *st;
int n;
int d;
st=fopen("numeri.txt","r");
if(st){
while(!feof(st)){
fscanf(st,"%d",&n);
//printf("%d",n);
while(n>0){
d=n%2;
pcoda=(struct nodo*)malloc(sizeof(nodo));
pcoda->info=d;
n=n/2;
pcoda->next=ptesta;
ptesta=pcoda;
}
}
stampa(ptesta);
}else{
printf("errore");
}
}
void stampa(puntanodo lista){
while(lista!=NULL){
printf("%d",lista->info);
lista=lista->next;
}
}