본문 바로가기
코스웨어/16년 스마트컨트롤러

2016-05-03_조재찬_스터디일지_C언어 기초 문제풀이

by 알 수 없는 사용자 2016. 5. 4.
728x90
반응형
/* 섭씨 온도 입력하면 화씨 온도 반환 CelToFah 함수
그 반대 FahToCel 함수 정의및 호출
Fah=1.8 x Cel+32 */

#include <stdio.h>

double CelToFah(double c)
{
	return 1.8*c + 32;
}

double FahToCel(double f)
{
	return (f - 32) / 1.8;
}

int main()
{
	int select;
	double num;

	printf("1. 섭씨℃->화씨℉	2. 화씨℉->섭씨℃-\n");
		printf("선택:");
		scanf("%d", &select);

	if (select == 1)
	{
		printf("섭씨℃ 입력: ");
			scanf("%lf", &num);
		printf("섭씨℃->화씨℉: %f \n", CelToFah(num));
	}
	else if (select == 2)
	{
		printf("화씨℉ 입력:");
			scanf("%lf", &num);
		printf("화씨℉->섭씨℃: %f \n", FahToCel(num));
	}

	return 0;
}


Output:







/* 인자로 전달된 수만큼의 피보나치 수열을 출력하는 함수
5를 입력하면 5! */

#include <stdio.h>

void Fibo(int num)
{
	int f1 = 0;
	int f2 = 1;
	int f3;
	int i;

	if (num == 1)
		printf("%d ", f1);
	else
		printf("%d %d ", f1, f2);

	for (i = 0;  i<num-2;  i++) // 0과 1일 경우는 위의 if~else문에서 출력
	{
		f3 = f1 + f2;
		printf("%d ", f3);
		f1 = f2;
		f2 = f3;
	}
}

int main()
{
	int n;
	printf("출력하려는 피보나치 수열갯수 (1이상 입력) : ");
	scanf("%d", &n);

	if (n < 1)
	{
		printf("1 이상 값 입력하세요 \n");
		return -1;
	}
	Fibo(n);
	return 0;
}


Output:






최대 공약수(Greatest Common Measure) 구하기 (유클리드 호제법 이용)

알고리즘

  1. 두 수 n1,n2 입력
  2. n이 0이라면, n2 출력하고 알고리즘 종료.
  3. n이 n2를 나누어 떨어지면, n을 출력하고 알고리즘 종료.
  4. 그렇지 않으면, n2를 n1로 나눈 나머지를 새롭게 n2에 대입하고, n2와 n1을 바꾸고 3.으로 돌아온다.


예를 들어 6, 12의 GCM을 구할 때, 12가 6을 나누어 떨어지니 6을 출력하고 알고리즘을 종료한다.

#include<stdio.h>

int GCM(int n1, int n2);


int main(void)
{
	int n1;
        int n2;

	printf("두 개의 정수 입력: ");
	scanf("%d %d", &n1, &n2);

	printf("GCM : %d \n", GCM(n1, n2));
	return 0;
}

int GCM(int n1, int n2)
{
	int result;
	result = n1;
	while(n1%result !=0 || n2%result !=0)
		result--;
	return result;
}

이 문제에선 6, 9의 GCM을 구한다면,

int result;
	result = n1;
	while(n1%result !=0 || n2%result !=0)
		result--
n1=6, result=6

6과 6을 나눈 나머지는 0,     9와 6을 나눈 나머지는 3이므로 
=0 (false) || !=0 (true) 가 된다.

따라서 result--가 되고 while을 반복해나가다보면
6%3=0 || 9%3=0 이 되어 while문을 빠져나가고 result값인 3을 return하며 종료된다.



728x90