Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181

    Problema calcolatrice in linguaggio C

    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:

    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,numero1;
    	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).
    Grazie.

  2. #2
    In primo luogo racchiudi il codice nei tag [code] ... [/code], non in [quote] ... [/quote], altrimenti perde l'indentazione e diventa illeggibile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Scusa...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Perchè hai scritto

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

    ??
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    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.

    codice:
            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);
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.