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; } }

Rispondi quotando