Programming/컴퓨터프로그래밍및실습

[컴프실] 7일차 실습문제

leziwn.cs 2023. 7. 8. 19:20
//알파벳 소문자 하나를 입력 받고 모음(a, e, i, o, u)인지 판단하는 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	char alphabet;
	printf("알파벳 소문자 입력: ");
	scanf("%c", &alphabet);

	switch (alphabet) {
	case 'a': case 'e': case 'i': case 'o': case 'u':
		printf("%c는(은) 모음입니다.\n", alphabet);
		break;
	default:
		printf("%c는(은) 모음이 아닙니다.\n", alphabet);
		break;
	}
	return 0;
}

 

/*하나의 실수를 입력받고 
y = 2*x*x -4*x + 3 에 대입하여
출력값이 -5.0이상, 5.0 이하이면 TRUE, 그렇지 않으면 FALSE를 출력하는 프로그램*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	double x;
	double y;

	printf("x를 입력:");
	scanf("%lf", &x);
	y = 2 * x * x - 4 * x + 3;

	if ((y >= -5.0) && (y <= 5.0)) {
		printf("y의 값: %f\n", y);
		printf("TRUE\n");
	}
	else {
		printf("y의 값: %f\n", y);
		printf("FALSE\n");
	}
	return 0;
}

 

/*문자 W, S, A, D중 하나를 입력하면, swtich 구문을 사용하여 출력*/
// W: 전진, S: 후진, A: 좌회전, D: 우회전, 이 외의 문자: 정지
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	char car;
	printf("문자 입력(W, A, S, D): ");
	scanf("%c", &car);

	switch (car) {
	case 'W':
		printf("전진");
		break;
	case 'S':
		printf("후진");
		break;
	case 'A':
		printf("좌회전");
		break;
	case 'D':
		printf("우회전");
		break;
	default:
		printf("정지");
		break;
	}
	return 0;
}

 

4. 비트 연산, 16진수로 출력하기
/*비트연산, 16진수로 출력하기*/
// &: 두 개의 피연산자의 해당 비트가 모두 1이면 1, 아니면 0
// |: 두 개의 피연산자의 해당 비트 중 하나만 1이면 1, 아니면 0
// ^: 두 개의 피연산자의 해당 비트의 값이 같으면 0, 아니면 1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	char bit;
	int x, y, result;

	printf("수식을 입력하시오(예: 2&5) >> \n");
	scanf("%d%c%d", &x, &bit, &y);
	
	switch (bit) {
	case '&':
		result = x & y;
		break;
	case '|':
		result = x | y;
		break;
	case '^':
		result = x ^ y;
		break;
	default:
		printf("지원되지 않는 연산자입니다.\n");
		break;
	}

	printf("십진수: %d%c%d = %d\n", x, bit, y, result);
	printf("16진수: %08x%c%08x = %08x\n", x, bit, y, result); //8자리 16진수로 나타내기

	return 0;
}

 

5. 이차방정식
/*이차방정식의 계수를 입력받고,판별식을 계산하여
두 개의 실근, 중근, 두 개의 허근을 출력하는 프로그램*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

int main(void)
{
	double a, b, c; //이차방정식의 계수 입력받기
	double dis; //판별식
	double answer1, answer2; //실근
	double RealPart, UnrealPart; //허근
	
	printf("계수 a, b, c를 입력하시오: ");
	scanf("%lf%lf%lf", &a, &b, &c);
	dis = b * b -4 * a * c;
	answer1 = (-b + sqrt(dis)) / (2 * a);
	answer2 = (-b - sqrt(dis)) / (2 * a);

	if (dis > 0) { //두 개의 실근을 가짐
		printf("이차방정식의 실근1 은 %f입니다.\n", answer1);
		printf("이차방정식의 실근2 는 %f입니다.\n", answer2);
	}

	else if (dis == 0) //중근을 가짐
		printf("이차방정식의 중근은 %f입니다.\n", answer1);

	else {//두 개의 허근을 가짐
		RealPart = -b / (2 * a);
		UnrealPart = sqrt(-dis) / (2 * a); //허근의 허수부
		printf("이차방정식의 허근1 은 %f+%fi입니다.\n", RealPart, UnrealPart); //%fi
		printf("이차방정식의 허근2 는 %f-%fi입니다.\n", RealPart, UnrealPart);
	}
	return 0;
}