Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2015
    Messaggi
    18

    "... ha smesso di funzionare" [C/C++]

    Quando eseguo questo programma, esce la scritta: "nome.exe ha smesso di funzionare". Non riesco a capire il motivo. Sapreste darmi una mano?
    Grazie in anticipo.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    
    int convertitoreBase10(long int numero_da_convertire, int base)
    {
       char base_digits[16]={'0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    
    
       int numero_convertito[64];
       int num, indice, i;
    
    
       num=indice=0;
    
    
       while (numero_da_convertire!=0)
       {
         numero_convertito[indice]=numero_da_convertire%base;
         numero_da_convertire=numero_da_convertire/base;
         ++indice;
       }
    
    
       for(i=indice; i>=0; i--)
       num=num+base_digits[numero_convertito[indice]]*pow(10, i);
    
    
       return num;
    }
    
    
    int convertitoreBaseB(long int numero_da_convertire, int base)
    {
        int r, a[100], i, j, numero;
    
    
        while(numero_da_convertire>0)
        {
            i++;
            r=numero_da_convertire%10;
            numero_da_convertire=numero_da_convertire/10;
            a[i]=r;
        }
    
    
        numero=0;
        for(j=i; j>=0; j--)
            numero=numero+pow(base, j);
    
    
        return numero;
    }
    
    
    int main()
    {
        int b1, b2, i;
        long int n, nsp;
        FILE *fp1, *fp2;
        fp1=fopen("file1.txt", "r");
        fp2=fopen("file2.txt", "w");
        if (fp1!=NULL && fp2!=NULL)
        {
            fscanf(fp1, "%d %d %d", &b1, &b2, &n);
            while(!feof(fp1))
            {
                if(b1==10)
                    fprintf(fp2, "%d\n", convertitoreBase10(n, b2));
                else if(b2==10)
                    fprintf(fp2, "%d\n", convertitoreBaseB(n, b1));
                else if(b1!=10 && b2!=10)
                {
                    nsp=convertitoreBaseB(n, b1);
                    fprintf(fp2, "%d\n", convertitoreBase10(nsp, b2));
                }
                fscanf(fp1, "%d %d %d", &b1, &b2, &n);
            }
            fclose(fp1);
            fclose(fp2);
        }
        else printf ("Non ho trovato il file.\n");
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Intanto in convertitoreBaseB la variabile i non ha un valore iniziale (dovrebbe partire da 0) ... e il compilatore dovrebbe avvertirti.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.