calcolatrice in c

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

simo9115

Nuovo Utente
Messaggi
143
Reazioni
3
Punteggio
48
salve a tutti ho un problema con questo programma: qualsiasi numero inserisco il risultato è sempre 0! tralasciate il fatto che nn vedete l'elevamento a potenza perchè ancora la devo scrivere:

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


int a, b , c, scelta;


main()
{
printf("CALCOLATRICE:");
printf("\n\nOperazioni:");
printf("\n 1: somma");
printf("\n 2: sottrazione");
printf("\n 3: moltiplicazione");
printf("\n 4: divisione");
printf("\n 5: elevamento a potenza");
printf("\n\nOperazione da eseguire: ");


scanf("%d", &scelta); /*scelta dell'operazione*/


printf("Inserisci il primo numero: ");
scanf("%d", &a);
printf("Inserisci il secondo numero: ");
scanf("%d", &b);


switch(scelta) {
case '1':
c = a + b;
break;
case '2':
c = a - b;
break;
case '3':
c = a * b;
break;
case '4':
c= a / b;
break;
}






printf("Risulato: %d", c); /*stampa risultato*/


}
 
Prova a togliere gli apici dai numeri dei case. Ho idea che li consideri come caratteri e non come valori numerici, oppure dichiari la variabile scelta di tipo char e nello scanf acquisisci un char anzichè un valore numerico.
 
ok il problema era quello però mi hanno riesco di nn usare una switch ma beni un if....quindi o ricorretto in un altro modo solo che mi si presenta un altro errore...dovo aver aggiunto l'if relativo alla potenza nn mi appare + il printf finale:

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


int a, b , c, scelta, ret, i;


main()
{
printf("CALCOLATRICE:");
printf("\n\nOperazioni:");
printf("\n 1: somma");
printf("\n 2: sottrazione");
printf("\n 3: moltiplicazione");
printf("\n 4: divisione");
printf("\n 5: elevamento a potenza");
printf("\n\nOperazione da eseguire: ");


scanf("%d", &scelta); /*scelta dell'operazione*/


printf("Inserisci il primo numero: ");
scanf("%d", &a);
printf("Inserisci il secondo numero: ");
scanf("%d", &b);


if (scelta==1)
c = a + b;
else if (scelta==2)
c= a - b;
else if (scelta==3)
c= a * b;
else if (scelta==4)
c= a / b;
else if (scelta==5)
ret = 1;
for (i=0; i<b; i++){
ret= ret * a;
return ret;
ret=c;}


printf("Risulato: %d", c); /*stampa risultato*/


}
 
Beh è ovvio... hai fatto un ciclo for privo di senso: a ogni iterazione fai un return.
Se conosci il significato di return, la risposta la trovi da te :)
Il return interrompe l'esecuzione della funzione corrente e ritorna il valore al chiamante, in questo caso la console.
Quel for esegue una sola iterazione (nemmeno completa), ritorna il primo valore di ret (che è il valore di a) e il programma termina.
Non riesco a capire cosa intendessi fare in quel ciclo.
 
Beh è ovvio... hai fatto un ciclo for privo di senso: a ogni iterazione fai un return.
Se conosci il significato di return, la risposta la trovi da te :)
Il return interrompe l'esecuzione della funzione corrente e ritorna il valore al chiamante, in questo caso la console.
Quel for esegue una sola iterazione (nemmeno completa), ritorna il primo valore di ret (che è il valore di a) e il programma termina.
Non riesco a capire cosa intendessi fare in quel ciclo.

infatti...ora ho sistemato ed è tutto apposto ;) grazie dell'aiuto ;)
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top