Dobry den potreboval by som mensiu radu ked ma mchybu v kode
Kód:
#include <stdio.h>
#define ROZ 20
#define MIN 40
#define MAX 60
#define HALF 1.5
#define FULL 2.0
#define SPOLU (h_mzda * hod)
#define JEDENAPOL ((h_mzda * MIN) + ((hod - MIN) * (h_mzda * HALF)))
#define DVOJNASOBOK ((h_mzda * MIN) + (h_mzda * ROZ * HALF) + ((hod - MAX) * h_mzda * FULL))
double tyzdenna_mzda(double h_mzda, double hod);
double tyzdenna_mzda(double h_mzda,double hod)
{
double c,c1,c2,c3;
if((hod <= MIN) || ((hod <= MAX) && (hod >= MIN)) || (hod >= MAX))
{
if(hod <= MIN)
{
c = SPOLU;
printf("Hod. mzda: %.2lf Euro/hod, hodin: %.2lf, spolu: %.2lf Euro\n",h_mzda,hod,c);
c1=c;
}
else if(hod >= MIN && hod <= MAX)
{
c = JEDENAPOL;
printf("Hod. mzda: %.2lf Euro/hod, hodin: %.2lf, spolu: %.2lf Euro\n",h_mzda,hod,c);
c2=c;
}
else
{
c = DVOJNASOBOK ;
printf("Hod. mzda: %.2lf Euro/hod, hodin: %.2lf, spolu: %.2lf Euro\n",h_mzda,hod,c);
c3=c;
}
}
c = c1+c2+c3;
return c; // potrebujem tento vysledok vypisat v hlavnom programe
}
int main()
{
int n,i;
double c,h_mzda,hod;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%lf %lf",&h_mzda,&hod);
c = tyzdenna_mzda(h_mzda,hod);
}
printf("Celkova mzda: %.2lf Euro\n",c);
return 0;
}
vysledok pri vstupoch
3
20 38
22 48
24 68
by mal byt
Hod. mzda: 20.00 Euro/hod, hodin: 38.00, spolu: 760.00 Euro
Hod. mzda: 22.00 Euro/hod, hodin: 48.00, spolu: 1144.00 Euro
Hod. mzda: 24.00 Euro/hod, hodin: 68.00, spolu: 2064.00 Euro
Celkova mzda: 3968.00 Euro
len celkovu mzdu mi da zlu.Neviem ci to nieje nahodou magicke cislo a nedefinovat to nejako...
Vopred dakujem za rady.
Program mi v linuxovom prostredi spusti so spraavnym vysledkom,
no v inom mi vysledok vyhodi
Hod. mzda: 20.00 Euro/hod, hodin: 38.00, spolu: 760.00 Euro
Hod. mzda: 22.00 Euro/hod, hodin: 48.00, spolu: 1144.00 Euro
Hod. mzda: 24.00 Euro/hod, hodin: 68.00, spolu: 2064.00 Euro
Celkova mzda: 3208.00 Euro