Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Binario-Decimale(C)

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Binario-Decimale(C)

Messaggioda Foto Utentebob93 » 29 ott 2009, 16:49

Salve...mi potreste dire dove ho sbagliato??...E' un programma che converte i numeri binari in decimale....grazie
Codice: Seleziona tutto
include <stdio.h>
#include <stdlib.h>
#include <math.h>

main()

{
      int i,b[16],r;
     

      i=0;
      do{
          printf("Scrvi b");
          scanf("%d",&b[i]);
         i++;
         }while(b[i-1]==0 || b[i-1]==1);
         
         
         
          r=0;
          while(i>=0){
                      i--;
                      r=r+ pow(b[i],i);
                     
                      }
                     
                      printf("%d\n",r);
                     
                     
                     
                      system("pause");
                      }
Avatar utente
Foto Utentebob93
0 3
 
Messaggi: 49
Iscritto il: 23 gen 2009, 21:25

0
voti

[2] Re: Binario-Decimale(C)

Messaggioda Foto UtentePaolino » 29 ott 2009, 16:58

ok, ma prova a ragionare. Altrimenti, al solito, fai le domande e poi sparisci più veloce di quello che superava la Luce in velocità :mrgreen:

Intanto analizza qui:
Codice: Seleziona tutto
i=0;
      do{
          printf("Scrvi b");
          scanf("%d",&b[i]);
         i++;
         }while(b[i-1]==0 || b[i-1]==1);

Qual è la condizione di uscita dal ciclo do-while ? Un valore di b[] diverso da 1 o da 0? Per esempio 2? Ok, ma quanto è grosso il vettore b[]? E se continuassi a inserire valori 1 o 0 facendo aumentare i a dismisura?????

Ciao.

Paolo.

P.S. Personalmente "odio" i cicli do-while()... Ora, non so se in questo caso si poteva fare diversamente (probabilmente sì), ma avrei preferito un while() secco!
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[3] Re: Binario-Decimale(C)

Messaggioda Foto Utentec1b8 » 29 ott 2009, 17:03

Stavo postando la soluzione, poi leggo Poalino che ti suggerisce di ragionare e allora procediamo in modo diverso.

Oltre a quanto indicato da Paolino, che comunque non è a mio avviso l'errore, esiste un errore molto più grossolano:
prova a scrivere una conversione su carta e confrontala con quanto hai scritto.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[4] Re: Binario-Decimale(C)

Messaggioda Foto UtentePaolino » 29 ott 2009, 17:07

Sì, Fabio. Volevo procedere per gradi fecendo analizzare passo a passo il codice a bob93. Sarei arrivato dopo al tuo quesito. :mrgreen:

Ciao.

Paolo.

P.S. bob93, aspettiamo tuoi commenti ;-)
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[5] Re: Binario-Decimale(C)

Messaggioda Foto Utenteposta10100 » 6 nov 2009, 13:18

Secondo me con quel codice rischi di far fuori qualche dato nella ram.... meglio non pensare alle conseguenze!
Magari proprio il contenuto della variabile i... o r...
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti