본문 바로가기

C&C++_Basic/C_Condition

C언어 각종 면적, 숫자 출력

  • 아래와 같이 두단계로 구성된 메뉴의 프로그램을 쓰시오
    1. 면적 계산 : 변의 길이(a,b), 반지름(r), 삼각형(밑면 a, 높이 h)
  • 사각형의 면적 계산
  • 원의 면적 계산
  • 삼각형의 면적 계산
  • 다시 선택하시오
    1. 숫자 연산 : 임의의 정수 n 을 입력
  • 홀수의 합(1 ~ n)
  • 소수(Prime number)
  • n! 계산
  • 피보나치 수열
  • 다시 선택하시오
    1. 종료합니다.
  •  
#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;
 }