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;
}