Dubbio su programma di C.

di
Anonimizzato13124
il
9 risposte

Dubbio su programma di C.

Buon pomeriggio a tutti , sono alle prese con un programmino di C che effettui la conversione di 2 numeri da decimale a binario( che presenta degli errori).
Non capisco perche mi converte il primo numero che io inserisco e quando poi inserisco il secondo numero invece non lo fa!
#include<stdio.h>


 int main(void){
    const char output[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    const char output2[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    int numero , base, index=0 ,next;
    int numero2,base2, index2=0, next2;
    int nconv[70];
    int nconv2[70];
    
    printf("digita il numero in base 10 :  \n");
    scanf("%i",&numero);
    printf("digita la base : ");
    scanf("%i",&base);
    
    while(numero!=0){
                     nconv[index]=numero%base;
                     index++;
                     numero=numero/base;
                     //numero/=base;// istruzione per uscire dal while
                     }
                     printf("numero convertito :");
                     for(--index;index>=0;--index){
                                                   next=nconv[index];
                                                   printf("%c", output[next]);
                                                   
                     }
                     //getchar();
                     //getchar();
                     
               
                    
                     
    printf("\n\n");               
    printf("digita il secondo numero in base 10 :  \n");
    scanf("%i",&numero2);
    printf("digita la base : ");
    scanf("%i",&base2);
    
    while(numero2!=0){
                     nconv[index2]=numero2%base2;
                     index++;
                     numero2=numero2/base2;
                     //numero/=base;// istruzione per uscire dal while
                     }
                     printf("numero convertito :");
                     for(--index2;index2>=0;--index2){
                                                   next2=nconv2[index2];
                                                   printf("%c", output2[next2]);
                                                   }
                                                   
                                                   getchar();
                                                   getchar();
                                                   }
    







9 Risposte

  • Re: Dubbio su programma di C.

    Prova a ragionare sul valore di index
  • Re: Dubbio su programma di C.

    Index1 o index 2?
  • Re: Dubbio su programma di C.

    Presumo index2. ma non riesco a capire come potrei modificarlo :/
  • Re: Dubbio su programma di C.

    Insomma ... guarda qui
    
    nconv[index2]=numero2%base2;
    index++;
    
  • Re: Dubbio su programma di C.

    Dovrei mettere index2++ , ma non mi va lo stesso :/
  • Re: Dubbio su programma di C.

    Fai attenzione ... anche la prima linea è da correggere ...
  • Re: Dubbio su programma di C.

    Hai ragione oregon, non ci avevo fatto caso.. adesso funziona..
    Ma se per fare la somma binaria dei 2 risultati prodotti come potrei proseguire?? :/
  • Re: Dubbio su programma di C.

    A parte il fatto che quel programma lo dovresti rifare con una funzione da chiamare due volte, che cosa vorresti fare? La somma binaria è un altro esercizio? Chiarisci, eventualmente in un altro thread.
  • Re: Dubbio su programma di C.

    E infatti , non c'è un modo ricorsivo per utilizzare questa funzione senza riscrivere il programma per intero?
Devi accedere o registrarti per scrivere nel forum
9 risposte