#include <stdio.h>
int main(){
int num = 2;
printf("num = %d\n", num);
num += 3; //5
printf("num = %d\n", num);
num -= 1; // 4
printf("num = %d\n", num);
num *= 3; // 12
printf("num = %d\n", num);
num /= 6; //2
printf("num = %d\n", num);
}

#include <stdio.h>
void p(int num);
int main(){
int num = 2;
//printf("num = %d\n", num);
p(num);
num += 3; //5
//printf("num = %d\n", num);
p(num);
num -= 1; // 4
//printf("num = %d\n", num);
p(num);
num *= 3; // 12
//printf("num = %d\n", num);
p(num);
num /= 6; //2
//printf("num = %d\n", num);
p(num);
}
void p(int num){
printf("num = %d\n", num);
}
=> 출력하는 부분을 함수로 설정하여 간단하게 작성할 수 있음.
=> 여기서 위의 void p(int num); 은 선언을 해주는 부분이고 맨 아래의 void p(int num){ } 은 함수의 정의를 해주는 부분이다.

#include <stdio.h>
void p(int num);
void function_without_return();
int main(){
function_without_return();
}
void function_without_return(){
printf("Function without return\n");
}
여기서 void는 아무 것도 반화하지 않겠다는 것을 의미

#include <stdio.h>
void p(int num);
void function_without_return();
int function_with_return();
int main(){
//function_without_return();
int ret = function_with_return();
p(ret);
return 0;
}
void p(int num){
printf("num = %d\n", num);
}
void function_without_return(){
printf("Function without return\n");
}
int function_with_return(){
printf("Function with return\n");
return 10;
}
여기서는 int function_with_return() 을 선언, 정의 해준다.
함수 정의에서 "Function with return"을 출력하고, 그에따는 return 값은 10이라고 정의했다.
따라서 이 함수가 메인 함수에서 작동하여 아래와 같은 결과를 나타낸다.

#include <stdio.h>
void function_without_params();
int main(){
function_without_params();
return 0;
}
void function_without_params(){
printf("Function without paramters\n");
}
#include <stdio.h>
void function_with_params(int num1,int num2,int num3);
int main(){
//function_with_params(1,2,3);
function_with_params(25,27,35);
return 0;
}
void function_with_params(int num1,int num2,int num3){
printf("Function with params, params = %d, %d, %d\n", num1, num2, num3);
}

#include <stdio.h>
int apple(int total, int ate);// 전체 total개 에서 ate개를 먹고 남은 개수
int main(){
int ret = apple(5,2); // 사과 5개에서 2개를 먹었다
printf("Total - Ate = %d\n", ret);
return 0;
}
int apple(int total, int ate){
printf("Function with params and return\n");
return total - ate;
}

#include <stdio.h>
int apple(int total, int ate);// 전체 total개 에서 ate개를 먹고 남은 개수
int main(){
//int ret = apple(5,2); // 사과 5개에서 2개를 먹었다
//printf("Total - Ate = %d\n", ret);
printf("%d(Total) - %d(Ate) = %d\n", 10, 4, apple(10,4));
return 0;
}
int apple(int total, int ate){
printf("Function with params and return\n");
return total - ate;
}
사과를 먹고 남은 개수에 apple(10,4) 를 입력하여 function이 돌아가게 한다.

C 언어에서 전역 변수를 사용하는 방법은 Python의 global 키워드를 사용하는 것과는 조금 다릅니다.
C에서는 전역 변수를 파일의 '최상위(함수 정의 외부)'에 선언하면, 모든 함수에서 이를 사용할 수 있습니다.
#include <stdio.h>
// 전역 변수 선언
int global_var = 10;
// 함수 선언
void print_global_var();
void increment_global_var();
int main(void) {
printf("Initial global_var: %d\n", global_var); // 10 출력
print_global_var(); // 전역 변수 출력
increment_global_var(); // 전역 변수 증가
print_global_var(); // 전역 변수 출력
return 0;
}
// 전역 변수 사용 예제 함수
void print_global_var() {
printf("global_var in print_global_var: %d\n", global_var);
}
void increment_global_var() {
global_var++;
printf("global_var incremented to: %d\n", global_var);
}
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int getRandomNumber(int level);
void showQuestion(int level, int num1, int num2);
int main(){
srand(time(NULL));
int count = 0;
for(int i = 1; i <= 5; i++){
int num1 = getRandomNumber(i);
int num2 = getRandomNumber(i);
//printf("%d x %d = ?\n", num1, num2);
showQuestion(i, num1, num2);
int answer = -1;
scanf("%d", &answer);
if(answer == -1){
printf("Quit\n");
exit(0);
}
else if(answer == num1 * num2){
printf("Correct! Move next level\n");
count += 1;
}
else if(answer != num1 * num2){
printf("Wrong!\n");
//break;
}
}
printf("You got %d correct answers\n", count);
return 0;
}
int getRandomNumber(int level)
{
return rand() % (level * 7) + 1; //레벨이 올라갈수록 숫자의 범위가 커지도록 설정
}
void showQuestion(int level, int num1, int num2)
{
printf("\n\n\n ##### %d번째 비밀번호 #####\n", level);
printf("\n%d x %d = ?\n", num1, num2);
printf("Press the number (Quit : -1)\n");
}
