문제의 조건이 맞는지 봐주세요.
연파랑
문제가
회사원은 3종류
임원 5천만원 관리 3천만원 일반 2천만원
그리고 일한 년수에 따라
1~4년 - 1배 5~9년 - 1.2배 10~12년 - 1.5배
위에 조건에 따라 계산하는 함수를 각각(한해 연봉,총 연봉)만들어 계산하여 출력 하시오
이거 인데 나머지는 조건에 마추 었는데
한해 연봉과 총 연봉을 계산 하는 함수를 만들어 출력 하라는 조건이 밑에 제가 짠 소스에
만족을 하나요??
질문 내용 :
#include stdio.h
int num1, num2;
float a=50000000;
float b=30000000;
float c=20000000;
int yearA ()
{
switch (num2)
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 임원 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, a);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 임원 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, a*1.2);
break;
case 10: case 11: case 12:
printf(%d년 일한 임원 회사원의 올해 연봉은 %0.f원 입니다. \n, num2, a*1.5);
break;
}
return 0;
}
int totalA ()
{
switch (num2)
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 임원 회사원의 총 연봉은 %.0f원 입니다. \n, num2, a*num2);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 임원 회사원의 총 연봉은 %.0f원 입니다. \n, num2, (a*1.2*(num2-4))+(a*4)+a);
break;
case 10: case 11: case 12:
printf(%d년 일한 임원 회사원의 총 연봉은 %.0f원 입니다. \n, num2,(a*1.5*(num2-9))+(a*1.2*5)+(a*4)+a);
break;
}
return 0;
}
int yearB ()
{
switch (num2))
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 관리 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, b);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 관리 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, b*1.2);
break;
case 10: case 11: case 12:
printf(%d년 일한 관리 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, b*1.5);
break;
}
return 0;
}
int totalB ()
{
switch (num2)
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 관리 회사원의 총 연봉은 %.0f원 입니다. \n, num2, b*num2);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 관리 회사원의 총 연봉은 %.0f원 입니다. \n, num2, (b*1.2*(num2-4))+(b*4)+b);
break;
case 10: case 11: case 12:
printf(%d년 일한 관리 회사원의 총 연봉은 %.0f원 입니다. \n, num2, (b*1.5*(num2-9))+(b*1.2*5)+(b*4)+b);
break;
}
return 0;
}
int yearC ()
{
switch (num2)
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 일반 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, c);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 일반 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, c*1.2);
break;
case 10: case 11: case 12:
printf(%d년 일한 일반 회사원의 올해 연봉은 %.0f원 입니다. \n, num2, c*1.5);
break;
}
return 0;
}
int totalC ()
{
switch (num2)
{
case 0: case 1: case 2: case 3: case 4:
printf(%d년 일한 일반 회사원의 총 연봉은 %.0f원 입니다. \n, num2, c*num2);
break;
case 5: case 6: case 7: case 8: case 9:
printf(%d년 일한 일반 회사원의 총 연봉은 %.0f원 입니다. \n, num2, (c*1.2*(num2-4))+(c*4)+c);
break;
case 10: case 11: case 12:
printf(%d년 일한 일반 회사원의 총 연봉은 %.0f원 입니다. \n, num2, (c*1.5*(num2-9))+(c*1.2*5)+(c*4)+c);
break;
}
return 0;
}
int main ()
{
printf(회사원의 등급을 입력하세요. (임원 0, 관리 1, 일반 2) \t);
scanf(%d,&num1);
if (num1 == 0)
{
printf(임원 회사원의 일한 년 수를 입력하세요. \t);
scanf(%d,&num2);
yearA ();
totalA ();
}
else if (num1 == 1)
{
printf(관리 회사원의 일한 년 수를 입력하세요. \t);
scanf(%d,&num2);
yearB ();
totalB ();
}
else if (num1 == 2)
{
printf(일반 회사원의 일한 년 수를 입력하세요. \t);
scanf(%d,&num2);
yearC ();
totalC ();
}
else
{
printf(잘못 입력 하셨네요. \n);
}
return 0;
}
-
가시
중복되는건 배열을 사용하는게 좋겠네요
-
안다미로
switch보다는 if문을 쓰는게 더 좋겠네요.
그리고 중복되는 부분을 활용해 보세요.