연재 완료/C Lang 예제코드 모음

C언어 연습문제 풀이 CH11 (9~12)

라이피 (Lypi) 2018. 6. 11. 08:31
반응형

9. 1에서 10까지의 log_e x, sqrt(x), e^x, e^2 을 계산하는 프로그램을 작성하라. 

// 1에서 10까지의 log_e x, sqrt(x), e^x, e^2 을 계산하는 프로그램을 작성하라. 

#include <stdio.h>
#include <math.h>

int main()
{
	for (int i = 1; i <= 10; i++) {
		printf("Log_e %2d = %.6f, sqrt(%2d) = %.6f, e^%2d = %12.6f, %2d^2 = %3g \n", 
		        i, log(i), i,sqrt(i), i, exp(i), i, pow(i,2));
	}
}


10. 현재 시간과 날짜를 구하는 프로그램을 작성하라.

//현재 시간과 날짜를 구하는 프로그램

#include <stdio.h>
#include <time.h>

int main()
{
	time_t t = NULL;
	t = time(NULL);

	char timer[26];
	ctime_s(timer, 26, &t);

	printf("%s", timer);
}


11. difftime(), localtime(), gmtime() 함수를 이용하여 현지 시간과 그리니치 표준시간의 차를 출력하는 프로그램을 작성하라.

//difftime(), localtime(), gmtime() 함수를 이용하여 현지 시간과 그리니치 표준시간의 차를 출력하는 프로그램을 작성하라.
#include <stdio.h>
#include <time.h>

int main()
{
	time_t t = time(NULL);

	//tm구조체를 따로 선언하지 않고 tm*만 선언할 경우 tm*가 NULL포인터라는 런타임 에러가 뜬다.
	tm ltm;
	tm* ltmp = &ltm;
	localtime_s(ltmp,&t);
	
	tm gtm;
	tm* gtmp = &gtm;
	gmtime_s(gtmp,&t);
	 

	time_t lt = (time_t)ltm.tm_hour;
	time_t gt = (time_t)gtm.tm_hour;

	double diff_time = difftime(lt, gt);

	printf("현재 시간과 그리니치 표준시는 %g시간 차이납니다. \n", diff_time);
}


12. 키보드로부터 자신의 ID와 암호를 입력할 때 만약 ID가 틀린 경우 "Invalid ID",  암호가 잘못된 경우 "Invalid password", 모두 맞으면 "success"를 출력하는 프로그램을 작성하라.

//키보드로부터 자신의 ID와 암호를 입력할 때 만약 ID가 틀린 경우 "Invalid ID", 
//암호가 잘못된 경우 "Invalid password", 모두 맞으면 "success"를 출력하는 프로그램을 작성하라.

#include <stdio.h>
#include <string.h>

int main()
{
	const char* ID = "lypi";
	const char* PASS = "1234";

	char IDbuffer[50];
	char PWbuffer[50];

	do {
		printf("Input ID : "); scanf_s("%s", IDbuffer, 50);
		printf("Input Password : "); scanf_s("%s", PWbuffer, 50);
		if ((strcmp(IDbuffer, ID))) {
			printf("invalid ID \n\n");
			continue;
		}
		if ((strcmp(PWbuffer, PASS))) {
			printf("invalid PASS \n\n");
			continue;
		}

		printf("success \n");
		break;
	} while (1);

}


반응형