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
Junior Member
Junior Member
 
Messaggio: 180 di 220
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!
Super Squirrel
Junior Member
Junior Member
 
Messaggio: 332 di 346
Iscritto il: 16/05/2013, 22:05

Re: Calcoli in c

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

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


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti