PDA

Visualizza la versione completa : Problema calcolatrice in linguaggio C


Dheed
25-11-2009, 22:29
Salve, da un po che seguo questo forum e trovo che sia uno dei migliori che abbia visitato fino ad ora.
Sono nuovo alla programma in C e mentre faceve un esercizio sulla calcolatrice sono incappato in un errore,ecco il codice:



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


void menu();

int main()
{
menu();
return 0;
}

void menu()
{
char scelta,a;
double radice,divisione=1,divisione2;
int somma=0,prodotto=1,differenza=0,numero,sceltan,i,n umero1;
do
{
system("cls");
printf("Che operazione vuoi eseguire?\nPuoi scegliere tra: + - * / r(radice)\nScelta(inserire il relativo simbolo): ");
scanf("%c",&a);
if(a=='r')
{
system("cls");
printf("Inserire un numero[n>0]: ");
scanf("%d",&numero);
fflush(stdin);
printf("La radice e':%.2lf \n\n",radice=sqrt(numero));
}
if(a=='+')
{
system("cls");
printf("Quanti numeri vuoi sommare?\n");
scanf("%d",&sceltan);
fflush(stdin);
i=0;
do
{
i++;
printf("Inserire il numero %d: ",i);
scanf("%d",&numero);
fflush(stdin);
somma=somma+numero;
}
while(i<sceltan);
printf("La somma e':%d \n\n",somma);
}
if(a=='-')
{
system("cls");
printf("Quanti numeri vuoi sottrarre [si inizia a sottrarre dal primo]?\n");
scanf("%d",&sceltan);
fflush(stdin);
i=0;
do
{
i++;
printf("Inserire il numero %d: ",i);
scanf("%d",&numero);
fflush(stdin);
differenza=numero-differenza;
}
while(i<sceltan);
printf("La differenza e':%d \n\n",differenza);
}
if(a=='*')
{
system("cls");
printf("Quanti numeri vuoi moltiplicare?\n");
scanf("%d",&sceltan);
fflush(stdin);
i=0;
do
{
i++;
printf("Inserire il numero %d: ",i);
scanf("%d",&numero);
fflush(stdin);
prodotto=numero*prodotto;
}
while(i<sceltan);
printf("Il prodotto e':%d \n\n",prodotto);
}
if(a=='/')
{
system("cls");
printf("Quanti numeri vuoi dividere?\n");
scanf("%d",&sceltan);
fflush(stdin);
i=0;
do
{
i++;
printf("Inserire il numero %d: ",i);
scanf("%d",&numero);
fflush(stdin);
divisione=numero/divisione;
divisione2=divisione/numero;

}
while(i<sceltan);
printf("Il quoziente e':%.2lf \n\n",divisione2);
}

system("pause");
system("cls");

printf("Effettuare altre operazioni(S/N)?\n\n");
printf("Effettua la tua scelta: ");
scanf("%c",&scelta);
}
while (scelta!='n');
getchar();
}


Nella parte della calcolatrice c' un errore che non trovo:mi divide solo il primo l'ultimo numero(o per lo meno quello che faceva prima che provassi in altro modo). :dh:
Grazie.

MItaly
25-11-2009, 22:32
In primo luogo racchiudi il codice nei tag
... , non in
... , altrimenti perde l'indentazione e diventa illeggibile.

Dheed
25-11-2009, 22:44
Scusa...

oregon
26-11-2009, 07:15
Perch hai scritto

divisione=numero/divisione;
divisione2=divisione/numero;

??

Dheed
26-11-2009, 08:00
Ok,ho riisolto era un problema di variabile,dovevo inizializzarla all'inizio.
Quella strana operazione serviva per girare il numero sulla variabile "divisione" e poi dividerla per un'altro,ma avendo fatto l'operazione all'interno si inizializzava ogni volta.
Grazie comunque per il tempo dedicato.



if(a=='/')
{
system("cls");
printf("Quanti numeri vuoi dividere?\n");
scanf("%d",&sceltan);
fflush(stdin);
i=1;
printf("Inserire il numero 1: ");
scanf("%d",&numero);
fflush(stdin);
divisione=numero;
do
{
i++;
printf("Inserire il numero %d: ",i);
scanf("%d",&numero);
fflush(stdin);
divisione=divisione/numero;
}
while(i<sceltan);
printf("Il quoziente e':%.3lf \n\n",divisione);
}

Loading