Calcoli in c

Messaggioda SalvatCpo » 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");
   }
}
SalvatCpo
Average Member
Average Member
 
Messaggio: 180 di 726
Iscritto il: 30/12/2017, 17:55

Re: Calcoli in c

Messaggioda Super Squirrel » 14/12/2018, 13:44

Non ho controllato il resto, ma le scanf() sono tutte sbagliate!
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 332 di 1486
Iscritto il: 16/05/2013, 22:05

Re: Calcoli in c

Messaggioda SalvatCpo » 14/12/2018, 15:18

Già, manca &
SalvatCpo
Average Member
Average Member
 
Messaggio: 181 di 726
Iscritto il: 30/12/2017, 17:55


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite