PDA

Visualizza la versione completa : [C]problemi con il while


B4D H4B1T
26-10-2009, 17:55
salve volevo presentami il mio problema,
ho fattto un pikkolo programma (nn fate kaso ai nomi x le variabili...)
ho messo un while, ma non funziona ,
definizione: teoricamente dovrebbe uscirmi un menu kon dei numeri ke corispondo alle varie attivita..eccecc pero quando lo avvio da di matto... :dh: :dh: :dh: :dh:
ecco il codice:

#include <stdio.h>

main()

{

int selezionea;

while (selezionea!=0)
printf("\n Scegli l'ambito matematico:\n\n");
printf(" 1) Le 4 operazioni basiche.\n");
printf(" 2) Elevazioni al quadrato e al cubo.\n");
printf(" 3) Elevazione con esponente a scelta\n");
printf(" 4) Radice quadrata di un numero\n");
printf(" 5) Percentuale di un numero\n");
scanf("%d",&selezionea);
switch(selezionea)
{
case 1:

int selezioneb;
printf(" 1) addizione\n");
printf(" 2) sottrazione\n");
printf(" 3) moltiplicazione\n");
printf(" 4) divisione\n);
scanf("%d",&selezioneb);
switch(selezioneb)
{
case 1:

float addendoa;
float addendob;
float somma;
printf("dammi il primo numero\n");
scanf("%f",&addendoa);
printf("dammi il secondo numero\n");
scanf("%f",&addendob);
somma = addendoa+addendob;
printf("il risultato %f\n",somma);
break;

case 2:

float minuendo;
float sottraendo;
float resto;
printf("dammi il primo numero\n");
scanf("%f",&minuendo);
printf("dammi il secondo numero\n");
scanf("%f",&sottraendo);
resto = minuendo-sottraendo;
printf("il risultato %f\n",resto);
break;

case 3:

float moltiplicando;
float moltiplicatore;
float prodotto;
printf("dammi il primo numero\n");
scanf("%f",&moltiplicando);
printf("dammi il secondo numero\n");
scanf("%f",&moltiplicatore);
prodotto = moltiplicando*moltiplicatore;
printf("il risultato %f\n",prodotto);
break;

case 4:

float dividendo;
float divisore;
float quoto;
printf("dammi il primo numero\n");
scanf("%f",&dividendo);
printf("dammi il secondo numero\n");
scanf("%f",&divisore);
quoto = dividendo/divisore;
printf("il risultato %f\n",quoto);
break;

default:
printf("selezione sbagliata\n");
}

case 2:

int selezionec;
printf(" 1") elevazione al quadrato\n");
printf(" 2") elevazione al cubo\n");
scanf("%d",&selezionec);
switch(selezionec);
{

case 1:

float base;
float quadrato;
printf("dammi il numero da elevare\n");
scanf("%f",&base);
quadrato = base*base;
printf("il risultato %f\n",quadrato);
break;

case 2:

float basea;
float cubo;
printf("dammi il numero da elevare\n");
scanf("%f",&basea);
cubo = basea*basea*basea;
printf("il risultato %f\n,cubo);
break;

default:
printf("scelta sbagliata\n");
}

case 3:

float basec;
float elevatore;
float elevato;
printf("dammi il numero da elevare\n");
scanf("%f",&basec);
printf("dammi l'esponente a scelta\n");
scanf("%f",&elevatore);
elevato = basec^elevatore;
printf("il risultato %f",elevato);
break;

case 4:

float sradicando;
floata sradicato;
printf("dammi il numero\n");
scanf("%f",&sradicando);
sradicato = sradicando^1/2;
printf("il risultato %f\n",sradicato);
break;

case 5:

float percentuando;
float percentuatore;
float percentuato;
printf("dammi il primo numero\n");
scanf("%f",&percentuando);
printf("dammi la percentuale che vuoi sapere\n");
scanf("%f",&percentuatore);
percentuato = (percentuando/100)*percentuatore;
printf("il la percentuale %f\n",percentuato);
break;

default:
printf("scelta sbagliata\n");
}

}

ho provato a pensare il motivo
ma sono solo un newbie... :messner: qualke errore mi koncessovero...kredo..... :stordita:

sebaldar
26-10-2009, 18:00
prova ad inizializzare int selezionea con un valore non nullo oppure usa il cico
do { ... } while ( ... );

MItaly
26-10-2009, 18:26
Hai gi postato lo stesso problema qui (http://forum.html.it/forum/showthread.php?s=&threadid=1365751) e io ti ho gi risposto... :fagiano:

ant_alt
26-10-2009, 18:47
200 righe? :spy:

#include <stdio.h>
#include<math.h>
main(){
int sel;
float a,b;
do {
printf("\n Scegli l'ambito matematico:\n\n");
printf(" 1) Le 4 operazioni basiche.\n");
printf(" 2) Elevazioni al quadrato e al cubo.\n");
printf(" 3) Elevazione con esponente a scelta\n");
printf(" 4) Radice quadrata di un numero\n");
printf(" 5) Percentuale di un numero\n");
scanf("%d",&sel);
switch(sel){
case 1:
printf(" 1) addizione\n");
printf(" 2) sottrazione\n");
printf(" 3) moltiplicazione\n");
printf(" 4) divisione\n");
scanf("%d",&sel);
printf("dammi il primo numero\n");
scanf("%f",&a);
printf("dammi il secondo numero\n");
scanf("%f",&b);
switch(sel) {
case 1:
printf("il risultato e' %f\n",a+b);
break;
case 2:
printf("il risultato e' %f\n",a-b);
break;
case 3:
printf("il risultato e' %f\n",a*b);
break;
case 4:
printf("il risultato e' %f\n",a/b);
break;
default:
printf("selezione sbagliata\n");
}
break;
case 2:
printf(" 1 elevazione al quadrato\n");
printf(" 2 elevazione al cubo\n");
scanf("%d",&sel);
switch(sel){
case 1:
printf("dammi il numero da elevare al quadrato\n");
scanf("%f",&a);
printf("il risultato e' %f\n",a*a);
break;
case 2:
printf("dammi il numero da elevare al cubo\n");
scanf("%f",&a);
printf("il risultato e' %f\n",a*a*a);
break;
default:
printf("scelta sbagliata\n");
}
break;
case 3:
printf("dammi il numero da elevare\n");
scanf("%f",&a);
printf("dammi l'esponente a scelta\n");
scanf("%f",&b);
printf("il risultato e' %f",pow(a,b));
break;
case 4:
printf("dammi il numero\n");
scanf("%f",&a);
printf("il risultato e' %f\n",sqrt(a));
break;
case 5:
printf("dammi il primo numero\n");
scanf("%f",&a);
printf("dammi la percentuale che vuoi sapere\n");
scanf("%f",&b);
printf("il la percentuale e' %f\n",(a/100)*b);
break;
default:
printf("scelta sbagliata\n");
}
getchar();getchar();}while (sel!=0);
}



dai un'occhiata a questo, il tuo programma fatto in modo pi raziocinante :stordita: (scherzo, alle prime armi si fa questo e altro)..
ma fai pi attenzione quando scrivi..nel tuo codice mancavano dei break, delle printf erano scritte male, l'operazione di elevazione a potenza non si fa con "^" e la radice ovviamente non si fa "^1/2"...ma sopratutto fai dichiarato una 50ina di variabili inutili :D

B4D H4B1T
27-10-2009, 09:09
grazie mille a tutti quelli ke mi hanno risposto!!
ora posso compilarlo yeah1 :unz: :unz: :unz: :unz: :unz: :unz: :unz: :unz:

alka
27-10-2009, 13:39
Originariamente inviato da B4D H4B1T
grazie mille a tutti quelli ke mi hanno risposto!!


S, ma non aprire pi discussioni sullo stesso argomento: come ti stato segnalato, c'era gi un thread attivo per lo stesso problema.

Loading