본문 바로가기
카테고리 없음

윤성우의 열혈 C프로그래밍 도전 프로그래밍1 답안

by lido 2022. 2. 4.

1번문제

10진수 정수를 입력받아서 16진수로 출력하라.

#include <stdio.h>

int main(void)
{
	int num;
	printf("정수를 입력하라 : ");
	scanf("%d", &num);
	printf("16진수로 표현하면 %x이다.", num);

	return 0;

}

 

2번문제

두수를 입력 받아서 그 사이에 해당하는 구구단을 출력하라.

 

gogodan이라는 함수를 만들어서 구구단을 조건에 맞게 출력하도록 한다.

 

#include <stdio.h>

void gogodan(int a, int b)
{
	int i;

	while (a <= b) {
		printf("%d단 \n", a);
		for (i = 1; i <= 9; i++)
			printf("%d x %d = %d\n", a, i, i * a);
		a++;
	}

}

int main(void)
{
	int a, b;
	printf("두 수를 입력하라 : ");
	scanf("%d %d", &a, &b);

	if (a < b)
		gogodan(a, b);
	else
		gogodan(b, a);

	return 0;
}

 

3번문제

두 정수를 입력받아서 최대공약수를 구하라.

 

#include <stdio.h>

int main(void)
{
	int a, b;
	printf("두 수를 입력하세요 : ");
	scanf("%d %d", &a, &b);

	int i;
	for (i = a; i >= 1; i--)
	{
		if (a % i == 0 && b % i == 0)
		{
			printf("%d", i);
			break;
		}
		
	}
}

 

4번문제

3500원을 크림빵(500원), 새우깡(700원), 콜라(400원)을 사는데 잔돈을 남기지 않고 세가지 물건을 하나 이상 반드시 구매하려면 어떻게 해야하는가? 모든 경우의 수를 제시하라.

 

#include <stdio.h>
int main(void)
{
	int x, y, z;
	for (x = 1; x <= 5; x++)
	{
		for (y = 1; y <= 7; y++)
		{
			for (z = 1; z <= 8; z++)
			{
				if (x*700 + 500 * y + 400 * z == 3500)
					printf("크림빵 %d개 새우깡%d개 콜라%d개 \n", y, x, z);
			}
		}
	}
	return 0;
}

 

문제 6번

 

#include <stdio.h>
int main(void)
{
	int hour, min, sec,cho;
	printf("초를 입력하세요: ");
	scanf("%d", &sec);

	hour = sec / 3600;
	min = (sec - hour*3600)/60;
	cho = sec % 60;
	printf("%d시 %d분 %d초 입니다.", hour, min, cho);
	return 0;
}

문제 7

 

댓글