سلام
من یک تابع دارم که در آن هر وقت به آن مراجعه می کنم باید یک واحد از متغیر گلوبالم کم شود ولی نمی شود وحتی دستور کم کردن آن هم نوشتم ولی نمی شود باید چکار کنم
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int co (int f , int s , int d , char c);
int mn (char , char , char , char );
int ga(int p, char c);
int f , s , d , n ,p;
char c1 , c2 , c3 , c;
int main()
{
scanf("%d %d %d\n%c %c %c\n%d", &f, &s, &d, &c1, &c2, &c3 , &n);
for(int i = 0; i < n; i++)
{
scanf("%d %c", &p , &c);
ga(p,c);
}
return 0;
}
int ga (int p,char c)
{
switch(c)
{
case 'f':
if(p < 6000)
printf("No enough money\n");
else
mn(c,c1,c2,c3);
return 0;
case 's':
if( p < 18000)
printf("No enough money\n");
else
mn(c,c1,c2,c3);
return 0;
case 'd':
if( p < 30000)
printf("No enough money\n");
else
mn(c,c1,c2,c3);
return 0;
}
return 0;
}
int mn(char c , char c1 , char c2 , char c3)
{
switch(c)
{
case 'f' :
if(c1 == 'a' )
printf("Not a chef\n");
else
co(f,s,d,c);
return 0;
case 's':
if( c2 == 'a')
printf("Not a chef\n");
else
co(f,s,d,c);
return 0;
case 'd' :
if(c3 == 'a')
printf("Not a chef\n");
else
co(f,s,d,c);
return 0;
}
return 0;
}
int co(int f , int s , int d , char c)
{
switch(c)
{
case 'f' :
if( f >=1)
{
f = f - 1;
printf("Food is ready\n");
}
else
printf("Material is not enough\n");
return 0;
case 's' :
if ( s >= 1)
{
s = s - 1;
printf("Food is ready\n");
}
else
printf("Material is not enough\n");
return 0;
case 'd' :
if( d >= 1)
{
d = d - 1;
printf("Food is ready\n");
}
else
printf("Material is not enough\n");
return 0;
}
return 0;
}