Programming/컴퓨터프로그래밍및실습
[컴프실] 제5장: 수식과 연산자
leziwn.cs
2023. 7. 7. 18:12
수식
- 상수
- 변수
- 연산자
/*정수 사칙 연산*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x, y, result;
printf("두 개의 정수를 입력하시오: ");
scanf("%d%d", &x, &y);
result = x + y;
printf("%d + %d = %d\n", x, y, result);
result = x - y; //result 변수 두 번 써도 됨
printf("%d - %d = %d\n", x, y, result);
return 0;
}
/*초를 입력받고 분과 초로 나타내는 프로그램*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int input, min, sec;
printf("초를 입력하시오: ");
scanf("%d", &input);
min = input / 60;
sec = input % 60;
printf("%d분 %d초입니다.\n", min, sec);
return 0;
}
증감 연산자
- y = ++x; //x값을 증가시키고, 이를 y에 대입된다.
- y = x++; //y에 x를 먼저 대입하고, x를 증가시킨다.
/* 증감 연산자 */
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x, y;
printf("x와 y값을 입력하세요: ");
scanf("%d%d", &x, &y);
printf("\nx = %d\n", x);
printf("++x의 값 = %d\n", ++x);
printf("x = %d\n\n", x);
printf("y = %d\n", y);
printf("y++의 값 = %d\n", y++);
printf("y = %d\n", y++);
return 0;
}
Lab: 거스름돈 계산하기
/* 거스름돈 계산하기*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int price, payment;
int leftover = 0;
printf("물건 값을 입력하시오: \n");
scanf("%d", &price);
printf("투입한 금액을 입력하시오: \n");
scanf("%d", &payment);
leftover = payment - price;
printf("거스름 돈은 다음과 같습니다.\n\n");
printf("천원권: %d장\n", leftover / 1000);
printf("오백원 동전: %d장\n", (leftover % 1000) / 500);
printf("백원 동전: %d장\n", ((leftover & 1000) % 500)/100);
return 0;
}
복합 대입 연산자
/*복합 대입 연산자*/
#include <stdio.h>
int main(void)
{
int x = 10;
int y = 10;
int z = 33;
x += 1;
y *= 2;
z %= 10;
printf("x=%d, y=%d, z=%d", x, y, z);
return 0;
}
관계 연산자
: 두 개의 피연산자를 비교하는 연산자
- 결과가 참 == 1
- 결과가 거짓 == 0
/*관계 연산자*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x, y;
printf("두 개의 정수를 입력하세요: \n");
scanf("%d%d", &x, &y);
//결과값 ==0이면 false, ==1이면 true
printf("x==y의 결과값: %d\n", x == y);
printf("x!=y의 결과값: %d\n\n", x != y);
printf("x>y의 결과값: %d\n", x > y);
printf("x<y의 결과값: %d\n", x < y);
return 0;
}
논리 연산자
: 여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자
- 결과가 참 == 1
- 결과가 거짓 == 0
/*논리 연산자*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x, y;
printf("0은 거짓이고, 0이 아니면 참입니다. \n");
printf("두 개의 정수를 입력하시오: ");
scanf("%d%d", &x, &y);
printf("%d&&%d의 결과값: %d\n", x, y, x && y); //x와 y가 모두 참인가?
printf("%d||%d의 결과값: %d\n", x, y, x || y); //x또는 y가 참인가?
printf("!%d의 결과값: %d\n", x, !x); //x는 거짓인가?
return 0;
}
Lab: 윤년
/* 윤년인지 판단하기 */
/* 윤년의 조건
- 연도가 4로 나누어 떨어진다.
- 100으로 나누어 떨어지는 연도는 제외한다.
- 400으로 나누어 떨어지는 연도는 윤년이다. */
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int year;
printf("연도를 입력하시오: ");
scanf("%d", &year);
int result = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
printf("result = %d", result);
return 0;
}
조건 연산자
/*조건 연산자*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int x, y;
printf("정수 2개를 입력하세요: ");
scanf("%d%d", &x, &y);
printf("큰 수 = %d\n", (x > y) ? x : y);
printf("작은 수 = %d\n", (x < y) ? x : y);
return 0;
}
콤마 연산자
비트 연산자
형변환(type conversion)
: 실행 중에 데이터의 타입을 변경하는 것
1) 자동적인 형변환
- 올림 변환
- 내림 변환
//올림 변환과 내림 변환
#include <stdio.h>
int main(void)
{
char c = 10000; //내림 변환
int i = 1.23456 + 10; //내림 변환
float f = 10 + 20; //올림 변환
printf("c=%d, i=%d, f=%f\n", c, i, f);
return 0;
}
2) 명시적인 형변환
//명시적인 형변환
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double x;
printf("실수를 입력하세요: ");
scanf("%lf", &x);
printf("입력된 실수의 정수부분은 %d입니다.", (int)x);
return 0;
}
우선 순위
Mini Project: 화씨 온도를 섭씨로 바꾸기
//화씨 온도를 섭씨로 바꾸기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double input, output;
printf("섭씨온도를 입력하세요: ");
scanf("%lf", &input);
/*
output = (5 / 9) * (input - 32);
5/9가 먼저 계산되어 0이 된다.*/
output = (5.0 / 9.0) * (input - 32);
printf("\n화씨온도 = %f\n", output);
return 0;
}