Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Calcoli in c

14/12/2018, 11:46

Quando faccio partire l'esecuzione, non mi dà alcun errore ma dopo aver eseguito la terza riga del main ed aver preso il valore intero che inserisco, il programma finisce senza far partire le funzioni.
Come mai? Grazie in anticipo



Immagine


Codice:
#include<math.h>
#include <ctype.h>
#include <string.h>
//calcolatrice
float operazione (float x, float y);
float equazionepg (float a, float b);
void equazionesg (float a, float b, float c);
int main ()
{
   int k;
   float q, r, t;
   printf ("vuoi fare operazione (0), eq primo grado (1) o eq secondo grado (2)? ");
   scanf ("%d", k);
   switch (k)
   {
      case 0:
         printf ("dammi i due numeri reali: ");
         scanf ("%f", q);
         scanf ("%f", r);
         printf ("\nil risultato is %f\n", operazione (q, r));
         break;
      case 1:
         printf ("dammi il coefficiente di primo grado: ");
         scanf ("%f", q);
         printf ("dammi il termine noto: ");
         scanf ("%f", r);
         printf ("\nla soluzione is %f\n", equazionepg (q, r));
         break;
      case 2:
         printf ("dammi il coefficiente di primo grado: ");
         scanf ("%f", q);
         printf ("dammi il coefficiente di secondo grado: ");
         scanf ("%f", r);
         printf ("dammi il termine noto: ");
         scanf ("%f", t);
         equazionesg (q, r, t);
         break;
      default:
         break;
   }
   system ("PAUSE");
   return 0;
}
float operazione (float x, float y)
{
   int a;
   float z=0;
   printf ("premi 0 per fare la somma, 1 la sottrazione, 2 moltiplicazione, 3 divisione, 4 potenza");
   scanf ("%d", a);
   switch (a)
   {
      case 0:
         z=x+y;
         break;
      case 1:
         z=x-y;
         break;
      case 2:
         z=x*y;
         break;
      case 3:
         z=x/y;
         break;
      case 4:
         z=pow(x,y); //attenzione
         break;
   }
   return z;
}
float equazionepg (float a, float b)
{
   float z;
   z=-b/a;
   return z;
}
void equazionesg (float a, float b, float c)
{
   float d;
   float w,z;
   d=b*b-4*a*c;
   if (d>=0)
   {
      w=(-b-pow(d, 0.5))/(2*a);
      z=(-b+pow(d, 0.5))/(2*a);
      printf ("\nla prima soluzione is %f ", w);
      printf ("\nla seconda soluzione is %f ", z);
   }
   else
   {
      printf ("non ci sono soluzioni");
   }
}

Re: Calcoli in c

14/12/2018, 13:44

Non ho controllato il resto, ma le scanf() sono tutte sbagliate!

Re: Calcoli in c

14/12/2018, 15:18

Già, manca &
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.