티스토리 뷰
연산자 정리
1. 산술 연산자 (숫자 계산)
연산자 의미 예시
| + | 더하기 | x = 10 + 5 → x = 15 |
| - | 빼기 | y = 20 - 8 → y = 12 |
| * | 곱하기 | z = 4 * 6 → z = 24 |
| / | 나누기 | a = 15 / 3 → a = 5 |
| % | 나머지 구하기 | b = 17 % 4 → b = 1 |
2. 대입 연산자 (값 저장하기)
연산자 의미 예시
| = | 값 대입 | score = 90 (90 저장) |
| += | 더한 후 저장 | num += 5 (num = num + 5) |
| -= | 뺀 후 저장 | count -= 2 (count = count - 2) |
| *= | 곱한 후 저장 | price *= 3 (price = price * 3) |
| /= | 나눈 후 저장 | distance /= 2 (distance = distance / 2) |
| %= | 나머지 저장 | remainder %= 3 (remainder = remainder % 3) |
3. 증감 연산자 (값을 1씩 변화)
연산자 의미 예시
| ++a | 1 증가 후 사용 | ++level (먼저 증가) |
| a++ | 사용 후 1 증가 | score++ (나중에 증가) |
| --a | 1 감소 후 사용 | --health (먼저 감소) |
| a-- | 사용 후 1 감소 | lives-- (나중에 감소) |
4. 관계 연산자 (크기 비교)
연산자 의미 예시
| == | 같은지 비교 | age == 18 (나이가 18인가?) |
| != | 다른지 비교 | size != "large" (크기가 large가 아닌가?) |
| > | 큰지 비교 | speed > 60 (속도가 60보다 큰가?) |
| < | 작은지 비교 | temperature < 0 (온도가 0보다 작은가?) |
| >= | 크거나 같은지 비교 | score >= 50 (점수가 50 이상인가?) |
| <= | 작거나 같은지 비교 | weight <= 70 (몸무게가 70 이하인가?) |
5. 논리 연산자 (참/거짓 판단)
| ! | 피연산자의 결과를 반대로 반환 | !a |
| && | 피연산자가 모두 참이어야 참 | a && b |
| || | 피연산자 중 하나 이상이 참이어야 참 | a || b |
** 평가문제 : 사용자로부터 3개의 정수를 입력받아서, 3개의 수를 곱한 결과를 출력하라
예시) 세 개의 정수를 입력하세요 : 2 3 4
세 수의 곱은 24입니다.
#include <stdio.h>
int main() {
int a;
int b;
int c;
scanf("%d %d %d", &a, &b, &c);
printf("세 수의 곱은 %d 입니다.",a*b*c );
return 0;
}
** 평가문제 : 사용자로부터 3개의 정수를 입력받는다. 입력한 세 정수의 합과 평균을 출력하는 프로그램을 작성하라.
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
double d = (double)(a + b + c); // 정수 합을 실수로 변환
printf("세 정수의 합은 %f이고 평균은 %f입니다.\n", d, d / 3);
return 0;
}
조건문
어떤 의미를 이루게 하거나 이루지 못하게 하기 위하여 갖추어야 할 상태나 요소
if문
if(수행조건 : 관계연산자)
{
수행하고 싶은 일
}
else문 : 그 밖의 라는 의미를 가지고 있다.
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
if (a > 5) {
printf("입력값은 5보다 큽니다\n");
}
else if(a == 5){
printf("입력값은 5와 같습니다\n");
}
else{
printf("입력값은 5보다 작습니다\n");
}
return 0;
}
**문제 : 사용자로부터 하나의 정수를 입력 받는다, 입력한 값이 짝수인지 홀수인지 출력하라
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
if((a%2) == 0){
printf("입력한 값은 짝수입니다");
}
else{
printf("입력한 값은 홀수입니다");
}
return 0;
}
**문제 : 사용자로부터 세 개의 정수를 입력받는다. 입력 받은 세 개의 정수를 비교하여 그 중 가장 작은 최솟값을 출력하라.
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a < b && a < c) {
printf("%d\n", a);
}
else if (b < a && b < c) {
printf("%d\n", b);
}
else {
printf("%d\n", c);
}
return 0;
}
if ~ else if ~ else문
**문제 : 사용자로부터 점수값을 입력받는다. 점수값은 정수이다. 점수값이 60점 이상이면 합격, 60점 미만이면 불합격을 출력하라
#include <stdio.h>
int main() {
int a;
scanf("%d", &a); // 형식 지정자를 "%d"로 수정
if (a >= 60) {
printf("합격\n");
} else {
printf("불합격\n");
}
return 0;
}
**문제 : 사용자로부터 점수값을 입력받는다. 점수값은 정수이다. 점수값이 60점 이상이면 합격, 60점 미만이면 불합격을 출력하라.(단 합격자중에 90점 이상이면 장학대상입니다 출력)
#include <stdio.h>
int main() {
int a;
scanf("%d", &a); // 형식 지정자를 "%d"로 수정
if (a >= 60) {
if(a >= 90){
printf("장학생입니다\n");
}
else
printf("합격\n");
} else {
printf("불합격\n");
}
return 0;
}
**문제 : 사용자로부터 나이를 입력받는다. 나이는 정수이고, 나이의 값이 13세 미만이면 어린이, 13세 이상 19세 미만 청소년, 19세 이상이면 성인 출력
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
if(a<13){
printf("어린이");
}
else if((13<=a)&&(a<19)){
printf("청소년");
}
else{
printf("성인");
}
return 0;
}
...
#include <stdio.h>
int main() {
char a;
printf("드라이브를 포맷하시겠습니까? (y/n)\n");
scanf(" %c", &a);
if (a == 'y') {
printf("포맷 진행 중...\n");
} else {
printf("포맷 취소됨.\n");
}
return 0;
}
반복문
while문
반복 조건을 만족하는 동안 반복 문장을 수행한다.
반복 조건을 만족하지 않으면 while문을 빠져나간다.
#include <stdio.h>
int main() {
int i = 1;
while(i <= 100) // 1부터 100까지 반복
{
printf("충전 : %d\n", i);
i++;
if(i > 100) { // i가 100을 넘으면 충전 완료 메시지 출력
printf("충전이 완료되었습니다.\n");
}
}
return 0;
}
이중 while문
while (조건1) { // 바깥 while문
while (조건2) { // 안쪽 while문
// 실행할 코드
}
}
#include <stdio.h>
int main() {
int dan =2;
while(dan <10){
int i = 1;
while(i<10){
printf("%d * %d = %d\n", dan, i ,dan*i);
i++;
}
dan++;
}
return 0;
}
무한루프
반복 수행이 무한으로 일어난다는 것.
반복 조건이 어느 시점에 무너질 수 있도록 설계
무한 루프 안에서 어느 시점에 break나 return으로 빠져나올 수 있어야함.
for문
for문은 while문과 다르게 변수의 초기화 연산 증감 연산이 추가된다.
for(초기문;조건문;증감문)
{
반복하고자 하는 내용
}
#include <stdio.h>
int main() {
int i,dan;
scanf("%d",&dan);
for(i = 1;i<10;i++){
printf("%d * %d = %d\n", dan, i, dan * i);
}
return 0;
}
break문과 continue문
