


=은 같다가 아닌 대입한다, ==가 같다는 의미의 연산자, ===는 타입까지 같은 경우
값을 누적하는 경우 연산자를 축약하여 사용할 수 있음
a=a+1는a+=1로 축약할 수 있고,
a=a+b는a+=b와 같이 축약할 수 있음
축약은 가독성에 따라 적용하면 됨




#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
printf("%d", a++);
return 0;
} // 6
#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
printf("%d\n", ++a);
printf("%d", a);
return 0;
} // 5, 6
#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
printf("%d\n", --b);
printf("%d\n", b--);
printf("%d", b);
return 0;
} // 9, 9, 8


#include <stdio.h>
int main()
{
int a = 10;
int b = 11;
printf("%d", a == b);
return 0;
} // 0
// false임, 데시멀로 출력하여 0으로 출력
#include <stdio.h>
int main()
{
int a = 10;
int b = 11;
printf("%d", a == b);
return 0;
} // 1
!는 피연산자의 결과를 모두 반대로 만들어 줌 
엔드 연산자&&는 값이 모두 참이어야 true를 반환
| A | B | 결과 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
OR 연산자||는 둘 중 하나만 참이어도 참
| A | B | 결과 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |

#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
int c = 10;
printf("%d", a * b * c);
return 0;
}

#include <stdio.h>
int main() {
int num1, num2, num3;
int sum;
float average; // 실수이므로 float 사용
// 사용자로부터 세 개의 정수를 입력받음
scanf("%d", &num1);
scanf("%d", &num2);
scanf("%d", &num3);
// 세 정수의 합 계산
sum = num1 + num2 + num3;
// 평균 계산
average = sum / 3.0;
// 합과 평균 출력
printf("세 정수의 합: %d\n", sum);
printf("세 정수의 평균: %.2f\n", average); // 소수점 둘째 자리까지 출력
return 0;
}




#include <stdio.h>
int main()
{
int a;
printf("%d", &a);
if (a > 5){
printf("5보다 큽니다\n")
}
return 0;
} // 5보다 큰 값을 입력하면 참 아니면 거짓





#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a > 5){
printf("5보다 큽니다\n");
} else {
printf("5보다 크지 않습니다\n");
};
return 0;
}





#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a > 5){
printf("5보다 큽니다\n");
} else if(a < 5) {
printf("5보다 작습니다\n");
} else if(a == 5) {
printf("5입니다\n");
} else {
printf("입력값 잘못됨\n");
};
return 0;
}


#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a > 60){
printf("합격\n");
} else if(a < 60) {
printf("불합격\n");
} else if(a == 60) {
printf("합격\n");
} else {
printf("입력값 잘못됨\n");
};
return 0;
}

#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (90 > a > 60){
printf("합격\n");
} else if(a >= 90) {
printf("장학생입니다\n");
} else if(a < 60) {
printf("불합격\n");
} else if(a == 60) {
printf("합격\n");
} else {
printf("입력값 잘못됨\n");
};
return 0;
}

#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (20 > a > 13){
printf("청소년\n");
} else if(a > 19) {
printf("성인\n");
} else if(a < 13) {
printf("어린이\n");
} else {
printf("입력값 잘못됨\n");
};
return 0;
}

#include <stdio.h>
int main()
{
char a; // 문자여서 int 대신 char 타입 사용
printf("드라이브를 포멧할까요? (y/n): ");
scanf(" %c", &a);
if (a == 'y'){
printf("네 포멧하겠습니다\n");
} else if(a == 'n') {
printf("아니요 포멧하겠습니다\n");
} else {
printf("틀려서 포멧함\n");
};
return 0;
}

#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (100 >= a > 91){
printf("A\n");
} else if(90 >=a > 81) {
printf("B\n");
} else if(80 >=a > 71) {
printf("C\n");
} else if(70 >=a > 61) {
printf("D\n");
} else {
printf("F 낙제\n");
};
return 0;
}


#include <stdio.h>
int main()
{
int i = 0;
while(i < 5){
printf("프로그래밍\n");
i++;
};
return 0;
} // 문자열을 다섯번만 출력하고 끝남

#include <stdio.h>
int main()
{
int i = 1;
while(i <= 12){
printf("%d월\n", i);
i++;
};
return 0;
} // 12월까지 출력

#include <stdio.h>
int main()
{
int i = 1;
while(i < 10){
printf("2 * %d = %d\n", i, 2*i);
i++;
};
return 0;
} // 2 * 1 = 2 ...







#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;
} // 2*1=2 ... 9*9=81

#include <stdio.h>
int main() {
int i, j;
// 바깥쪽 반복문은 줄(row)을 나타냅니다 (1줄부터 5줄까지)
for (i = 1; i <= 5; i++) {
// 안쪽 반복문은 각 줄에 출력할 별의 개수를 나타냅니다
for (j = 1; j <= i; j++) {
printf("*");
}
// 한 줄을 다 출력한 후 줄바꿈
printf("\n");
}
return 0;
}





#include <stdio.h>
int main()
{
int dan, i;
scanf("%d", &dan);
for(i=1; i<10; i++){
printf("%d * %d = %d\n", dan, i, dan*i);
};
return 0;
} // 입력하는 값의 구구단이 출력됨


#include <stdio.h>
int main()
{
int a=0;
while(1){
if(a>100){
break;
}
printf("a는 %d입니다\n", a);
a++;
};
printf("a는 100보다 큼");
return 0;
}; // 100이 출력될 때 break걸림

#include <stdio.h>
int main()
{
int a=0;
while(a < 100){
a++;
if(a > 80 && a < 90){
continue;
}
printf("a의 값 : %d\n", a);
}
return 0;
}; // 100까지 출력함











#include <stdio.h>
// 함수 작성
void calculateArea(int width, int height) {
int area = width * height;
printf("사각형의 넓이는: %d\n", area);
}
int main() {
int width, height;
// 사용자로부터 가로와 세로 길이를 입력 받음
printf("가로의 길이를 입력하세요: ");
scanf("%d", &width);
printf("세로의 길이를 입력하세요: ");
scanf("%d", &height);
// 함수 호출하여 넓이 계산
calculateArea(width, height);
return 0;
}


#include <stdio.h>
// 자판기 함수 정의
void vendingMachine(int price) {
if (price == 100) {
printf("블랙커피를 제공합니다.\n");
} else if (price == 200) {
printf("밀크커피를 제공합니다.\n");
} else {
printf("잘못된 금액입니다. 100원 또는 200원을 넣어주세요.\n");
}
}
int main() {
int price;
// 사용자로부터 금액 입력 받음
printf("금액을 입력하세요 (100원: 블랙커피, 200원: 밀크커피): ");
scanf("%d", &price);
// 자판기 함수 호출
vendingMachine(price);
return 0;
}


















#include <stdio.h>
int main() {
int arr1[5] = {1, 2, 3, 4, 5}; // 원본 배열
int arr2[5]; // 복사된 배열
// 배열을 역순으로 복사
for(int i = 0; i < 5; i++) {
arr2[i] = arr1[4 - i];
}
// 결과 출력
for(int i = 0; i < 5; i++) {
printf("배열 arr2[%d] = %d\n", i, arr2[i]);
}
return 0;
}








#include <stdio.h>
int main()
{
int b = 100;
int *pb = &b; // 여기서 *는 포인터임을 표기
printf("b = %d\n", b);
printf("b = %p\n", &b);
printf("b = %p\n", pb);
printf("b = %d", *pb); // 여기서 *는 해당메모리의 실제 값을 참조하라는 의미
return 0;
}; /*
b = 100
b = 0x7ffd0fbeae2c
b = 0x7ffd0fbeae2c
b = 100
*/


#include <stdio.h>
int main()
{
int arr[] = {1,2,3,4,5};
for(int i = 0; i < 5; i++){
printf("%d\n", arr[i]);
printf("%d\n", &arr[i]);
}
printf("배열의 이름 = %p\n", arr);
return 0;
};
/*
1
723793824
2
723793828
3
723793832
4
723793836
5
723793840
배열의 이름 = 0x7ffc2b2437a0
*/




#include <stdio.h>
void func(int *pArr){
for(int i = 0; i <5; i++){
printf("함수 안의 배열 : %d\n", *(pArr + i));
}
};
int main()
{
int arr[] = {1,2,3,4,5};
func(arr);
for(int i = 0; i < 5; i++){
printf("%d\n", arr[i]);
printf("%d\n", &arr[i]);
}
return 0;
}; /*
함수 안의 배열 : 1
함수 안의 배열 : 2
함수 안의 배열 : 3
함수 안의 배열 : 4
함수 안의 배열 : 5
1
1092842016
2
1092842020
3
1092842024
4
1092842028
5
1092842032
*/
