본문으로 바로가기
728x90
반응형

219p


Programming


9. 앞장에서 간단한 정수 계산기를 만들어본 적이 있다. 이 계산기 프로그램에 메뉴를 추가하도록 한다. 다음과 같은 메뉴를 화면에 출력하고 사용자가 메뉴 중에서 하나를 선택할때까지 반복을 계속한다. do...while 반복문을 사용하여 사용자가 적절한 선택을 했는지를 검사하도록 하여라. 만약 사용자가 A, S, M, D, Q가 아닌 다른 문자를 입력하면 "연산을 선택하시오." 메시지를 계속해서 출력한다. 문자는 getche() 함수를 이용하여 입력받도록 하여라. 하나의 메뉴가 선택되면 해당되는 연산을 실행하고 다시 메뉴를 선택할 수 있도록 하여라. 반복을 종료하는 메뉴인 Q는 break 문을 이용하여 구현하도록 하여라.


#include <stdio.h>

#include <conio.h>

void main()

{

int x, y;

char choice;

printf("************\n");

printf("A---Add\n");

printf("S---Subtract\n");

printf("M---Multiply\n");

printf("D---Divide\n");

printf("Q---Quit\n");

printf("*************\n");


do

{

printf("\n연산을 선택하시요(대문자입력): ");

choice = _getche();

if (choice == 'Q') break;

switch (choice)

{

case 'A':

printf("\n두 수를 공백으로 구분하여 입력하세요:");

scanf_s("%d %d", &x, &y);

printf("\n%d + %d = %d\n", x, y, x + y);

break;

case 'S':

printf("\n두 수를 공백으로 구분하여 입력하세요:");

scanf_s("%d %d", &x, &y);

printf("\n%d - %d = %d", x, y, x - y);

break;

case 'M':

printf("\n두 수를 공백으로 구분하여 입력하세요:");

scanf_s("%d %d", &x, &y);

printf("\n%d * %d = %d", x, y, x*y);

break;

case'D':

printf("\n두 수를 공백으로 구분하여 입력하세요:");

scanf_s("%d %d", &x, &y);

printf("\n%d / %d = %d + %d", x, y, x / y, x%y);

break;

default:

continue;

}

} while (1);

} 




10. 2와 100 사이에 있는 모든 소수(prime number)를 찾는 프로그램을 작성하여보자. 소수는 1과 자기 자신 이외에는 약수를 가지지 않아야 한다. 즉, 현재 정수에서 시작하여 100 사이에 약수가 하나라도 있으면 소수가 아니다. 약수는 % 연산자를 이용하여 검사할 수 있다. 즉, i가 5의 약수라면 i%5가 0이 된다.


#include <stdio.h>

void main()

{

int x,y,z=0;

for (x = 2; x <= 100; x++)

{

z=0;

for (y = 1; y <= x; y++)

{

if (x%y == 0) z++;

}

if (z==2 )

printf("%d\n", x);

}

}


728x90
반응형