|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Mar 2008
Messaggi: 7
|
URGENTISSIMO: potete mettermi a posto questo programma entro domani? (C)
Ho un orale di informatica domani, devo portargli gli esercizi del compito d'esame svolti e funzionanti.
Questo ho avuto difficoltà a farlo, vorrei ci deste un occhio perché NON funziona. Il programma riceve un file formattato nella seguente maniera Codice:
(23) 10 (EF0) 18 (2NG) 33 (1204) 5 Il numero successivo rappresenta invece la base in cui è scritto. Il programma deve stampare a video la somma di tutti i numeri convertiti in base decimale. (A corrisponde a 10, B corrisponde a 11, C corrisponde a 12 e così via fino a 36 che corrisponde a Z) Questo è quello che ho fattio io, potreste dirmi se è corretta la funzione finale? Codice:
# include <stdio.h> # include <string.h> # include <math.h> int SommaConverti(char nome_file[]); int riscrivi_numero(char num_da_convertire[], int num[], int n); int main() { char nome_file[21]; printf("Nome del file: "); scanf("%s", nome_file); printf("La somma e' %d\n", SommaConverti(nome_file)); return 0; } int SommaConverti(char nome_file[]) { int somma = 0; FILE* fp; fp = fopen ("prova.txt","r"); char check; while ((check=getc(fp))!=EOF){ while (getc(fp)!='\n'){ int result; while (getc(fp)!=')'){ int somma, n; result = 0; somma = 0; char numero_da_convertire[50]; fscanf(fp, "(%s", numero_da_convertire); n = strlen(numero_da_convertire); int num[n]; int *nptr = num; riscrivi_numero(numero_da_convertire, *nptr, n); int base; fscanf(fp, "%d/n", &base); int i; for (i=0; i<n; i++){ result = result + num[i]*pow(base, n-i); } } somma += result; } } fclose(fp); return somma; } int riscrivi_numero(char num_da_convertire[],int *num, int n){ int i; for (i=0; i<n; i++){ printf ("%s/n", num_da_convertire); if (num_da_convertire[i]>='0' && num_da_convertire[i]<='9') num[i] = (num_da_convertire[i]-'0'); if (num_da_convertire[i]>='A' && num_da_convertire[i]<='Z') num[i] = (num_da_convertire[i]-'A'+10); } return 0; } Ho bisogno che qualcuno lo metta a posto... è importante, molto |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
edit
Ultima modifica di cionci : 16-07-2010 alle 14:10. Motivo: rimosso codice |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
tuccio': la risoluzione completa di esercizi è vietata in questo forum. Quindi la prossima volta evita.
Ovviamente è vietato anche richiedere la risoluzione completa di esercizi. |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:33.