- 아래와 같이 두단계로 구성된 메뉴의 프로그램을 쓰시오
-
- 면적 계산 : 변의 길이(a,b), 반지름(r), 삼각형(밑면 a, 높이 h)
- 사각형의 면적 계산
- 원의 면적 계산
- 삼각형의 면적 계산
- 다시 선택하시오
-
- 숫자 연산 : 임의의 정수 n 을 입력
- 홀수의 합(1 ~ n)
- 소수(Prime number)
- n! 계산
- 피보나치 수열
- 다시 선택하시오
-
- 종료합니다.
-
#include<stdio.h>
int main()
{
int choose;
printf("두가지 2가지 프로그램 중 하나를 선택하세요 \n면적 계산[1] 숫자연산[2] ");// switch문으로 초기
// 구분위해 크게 2가지로 구분한다.
scanf("%d",&choose);
switch(choose)
{
case 1:
int input;
printf("면적 계산을 위한 번호를 선택하세요 RECTENGULAR[1] SPHERE[2] TRIANGLE[3]\n");// 여기서도 마찬가지로 3가지 면적 구하는 프로그램을 위해 구분해준다.switch문 사
scanf("%d",&input);
switch(input)
{
case 1:
printf("변의 길이 2개를 실수 형태로 입력하세요\n");
float a,b;
scanf("%f %f",&a,&b);
printf("사각형의 면적은 %.1f입니다\n",a*b);
break;
case 2:
printf("반지름의 길이를 실수 형태로 입력하세요\n");
float r;
scanf("%f",&r);
printf("원의 면적은 %.2f입니다\n",3.14*r*r);
break;
case 3:
printf("삼각형의 밑면(under)과 높이(height)를 정수형태로 입력하세요\n");
int under,height;
scanf("%f %f",&under,&height);
printf("삼각형의 면적은 %.2f\n",0.5*under*height);// 반을 나누어줘야 하므로 처음부터 실수형 선언
break;
default:
printf("다시선택하시오\n ");
break; // 다시 선택하시오 선택지를 위해 default 값 설정해준다.
}
break;
default:
printf("다시선택하시오\n ");
break;
case 2:
printf("숫자 연산을 하는 프로그램 입니다\n");
int n;
int sumA =0;
int sumB =0;
int sumC =1;
printf("임의의 정수를 입력하세요");// 전체 계산에 적용될 n을 입력한다.
scanf("%d",&n);
int extrainput;// 세번째 switch 문을 위한 변수를 추가적으로 선언해준다.
printf("문자를 선택하세요 a[1],b[2],c[3],d[4]\n") ;
getchar();
scanf("%d",&extrainput);
switch(extrainput)
{
case 1:
printf("n까지의 홀수의 합을 연산하는 프로그램입니다\n");
for(int i = 1;i<=n;i++)
{
if(i%2==0)
continue;//홀수만 다음 식이 적용될 수 있도록 하
sumA+= i;
}
printf("1부터 n까지의 홀수의 합은 %d입니다\n",sumA);
break;
case 2:
printf("n까지의 소수의 합을 연산하는 프로그램입니다");
for(int j =1;j<=n;j++)
{
if((j%2==0)||(j%3==0))
continue;
sumB +=j;// 2와 3으로 나누어떨어지는 수 제외하고 식 적
}
printf("1부터 n까지의 소수의 합은 %d입니다\n",sumB);
break;
case 3:
printf("n 팩토리얼을 구하는 프로그램입니다\n");
for(int o =1;o<=n;++o)
{
sumC *=o;
//1부터 n까지 모두 곱하
}
printf("n 팩토리얼은 %d이다\n",sumC);
break;
case 4:
printf("피보나치수열입니다\n");
int k;
int head = 0;
int mid = 0;
int rear = 1;
for(k=0;k<n;k++)
{
printf("%d ",head);
mid = head +rear;
head =rear;
rear = mid;
}
break;
}
}
return 0;
}