PDA

Visualizza la versione completa : [C] problema if


disma666
30-10-2012, 20:30
ragazzi ho un problema...
la selezione funziona solamente con la moltiplicazione ovvero con 1.
con la divisione no.Appena premo 2 il programma si chiude...


#include<stdio.h>
#include<stdlib.h>

int main ()
{

int a, b, i, somma=0,dividendo,divisore,quoziente,cont=0,scelta ;

printf("premi 1 per effettuare una moltiplicazione.");
printf("premi 2 per effettuare una divisione.");
scanf("%d",&scelta);

if(scelta==1)
{


printf("<<Inserisci il primo fattore");
scanf("%d",&a); //inserisco il primo fattore
printf("<<Inserisci il secondo fattore");
scanf("%d",&b); //inserisco il secondo fattore

for(i=0; i<b; i++){ //fino a quando i minore di b(secondo fattore) ripeto

somma = somma+a; //sommo i valori di a tante volte quanto b


}

printf("il risultato %d",somma);

if (scelta==2)

{
printf("inserisci un numero");

scanf("%d",&dividendo);
printf("inserisci un numero");
scanf("%d",&divisore);


while(somma+divisore<=dividendo)

{
somma=somma+divisore;

cont++;


}
printf("il risulatato %d",cont);

}

system("pause");
}
}

oregon
30-10-2012, 20:41
Controlla bene le parentesi ... hai inserito tutto il codice all'interno della prima if ...

P.S. Quando posti del codice sul forum devi usare i tag CODE altrimenti non si capisce nulla

disma666
30-10-2012, 21:06
se unisco entrabe le if


#include<stdio.h>
#include<stdlib.h>
int main ()
{
int a, b, i, somma=0,dividendo,divisore,quoziente,cont=0,scelta ;
printf("premi 1 per effettuare una moltiplicazione.");
printf("premi 2 per effettuare una divisione.");
scanf("%d",&scelta);
if(scelta==1)
{
printf("<<Inserisci il primo fattore");
scanf("%d",&a);
//inserisco il primo fattore
printf("<<Inserisci il secondo fattore");
scanf("%d",&b);
//inserisco il secondo fattore
for(i=0; i<b; i++)
{
//fino a quando i minore di b(secondo fattore) ripeto
somma = somma+a;
//sommo i valori di a tante volte quanto b
}
printf("il risultato %d",somma);
if (scelta==2)
{
printf("inserisci un numero");
scanf("%d",&dividendo);
printf("inserisci un numero");
scanf("%d",&divisore);
while(somma+divisore<=dividendo)
{
somma=somma+divisore;
cont++;
}
printf("il risulatato %d",cont);
}
system("pause");
}
}

oregon
30-10-2012, 21:51
Non si capisce cosa intendi ... e il codice illeggibile ...

Iso90
31-10-2012, 00:34
Non chiudi la parentesi di if(scelta ==1) quando il momento ma la chiudi in fondo in questo modo se inserisci 1 entri nel ramo if, se inserisci 2 ( visto che il ramo else non esiste) il programma termina.
Sistema le parentesi.

oregon
31-10-2012, 00:37
Ti avevo gi detto che la prima if contiene tutto il codice ...

disma666
01-11-2012, 09:19
se la prima if la chiudo al fondo mi da risultati strani della moltiplicazione,e comunque la secona non mi parte ancora^^,

oregon
01-11-2012, 10:06
Per ora lascia perdere i risultati e concentrati sulle if ... devono essere separate altrimenti non gestisci il menu. Quindi impostale in questo modo



if(scelta==1)
{
...
}


if(scelta==2)
{
...
}


e poi passi a correggere quello che c' dentro le due if

Loading