[ hw04 ]
---------------------------------------------------------------------
#1
#include <stdio.h>
int main()
{
float a1, a2, b1, b2, c1, c2;
while(1)
{
printf("a1x + b1y = c1\na2x + b2y = c2\n");
printf("위 식들의 계수를 각각 입력하세요.(a1, b1, c1, a2, b2, c2)");
scanf("%f, %f, %f, %f, %f, %f", &a1, &b1, &c1, &a2, &b2, &c2);
if (a1 == 0 && a2 == 0)
printf("a1 과 a2 모두 0일 수 없습니다. 다시 입력하세요.");
else if (b1 == 0 && b2 == 0)
printf("b1 과 b2 모두 0일 수 없습니다. 다시 입력하세요.");
else
break;
}
/*
x 1 b2 -b1 c1 // 행렬식으로 계산 중
y a1b2-a2b1 -a2 a1 c2
1 b2c1-b1c2
a1b2-a2b1 a1c2-a2c1
*/
printf("x, y = %f, %f", ((b2*c1)-(b1*c2))/((a1*b2)-(a2*b1)), ((a1*c2)-(a2*c1))/((a1*b2)-(a2*b1)));
// 한번에 코딩한 것은 자랑.ㅋㅋ
return 0;
}
---------------------------------------------------------------------
#2
#include <stdio.h>
int main()
{
int op;
float x, y; // 근데 다른 이전의 문제에선 정수로 받아서 결과만 실수로 내주면 되는 것 같더니.. 이번엔 안된다.
printf("계산할 연산을 입력하세요.\n(1 : +, 2 : -, 3 : *, 4 : /) : ");
scanf("%d", &op);
printf("계산할 두 정수를 입력하세요 : ");
scanf("%f, %f", &x, &y);
switch(op)
{
case 1 : printf("'+' 연산의 결과값 : %0.0f\n", x+y); break; // op를 char 형식으로 받고 case '+' 이런 식으로 하고싶었는데
case 2 : printf("'-' 연산의 결과값 : %0.0f\n", x-y); break; // 안되는 듯함. 문자로 받아서 하는 방법은 없나요?
case 3 : printf("'*' 연산의 결과값 : %0.0f\n", x*y); break;
case 4 : while(1) // case 문에다가 while 문을 넣어보고 싶었음.
{
if (y == 0)
{
printf("/ 연산에서는 y(젯수)가 0이 될 수 없습니다. y의 값을 다시 입력하세요. : ");
scanf("%f", &y);
}
else
{
printf("'/' 연산의 결과값 : %f\n", x/y);
break;
}
} break;
}
return 0;
}
---------------------------------------------------------------------
#3
#include <stdio.h>
int main()
{
int a, b, c, max;
printf("3개의 정수값을 입력하세요(a, b, c) : ");
scanf("%d, %d, %d", &a, &b, &c);
if (a > b)
{
if (a > c)
max = a;
else
max = c;
}
else
{
if (b > c)
max = b;
else
max = c;
}
a = max % 2; // max 값에 이미 최대값이 들어가있기 때문에 이미 사용된 a 를 이용
if (a == 0)
printf("%d는 짝수입니다.\n", max);
else
printf("%d는 홀수입니다.\n", max);
return 0;
}