03월24일
오늘은 스위치문을 학습 했던 날입니다.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
//switch문
int main()
{
int num;
printf("1이상 5이하의 정수입력: : ");
scanf_s("%d", &num);
switch(num)
{
case 1:
printf("One \n");
break;
case 2:
printf("Two \n");
break;
case 3:
printf("Three \n");
break;
case 4:
printf("four \n");
break;
case 5:
printf("Five \n");
break;
default:
printf("I don't know! \n");
break;
}
return 0;
}
1~5 외의 수를 입력하면 I dnon't know를 출력하며 바로 switch문을 탈출하는 프로그램이다.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
//switch문
int main()
{
char sel;
printf("M 오전, A 오후, E 저녁 \n");
printf("입력: ");
scanf_s("%c", &sel);
switch (sel)
{
case 'M':
case 'm':
printf("Morning \n");
break;
case'A':
case'a':
printf("Afternoon \n");
break;
case 'E':
case 'e':
printf("Evening \n");
break; //꼭 필요하진 않다.
}
return 0;
}
함수에 대한 내용 학습
#include<stdio.h>
int main()
{
int num1, num2;
num1 = printf("12345\n");
num2 = printf("I love my home \n");
printf("%d %d \n", num1, num2);
return 0;
}
함수가 값을 반환하면 반환된 값이 함수의 호출문을 대체하게 된다
위 코드는 문자열의 길이를 반환하는 함수다.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int Add(int num1, int num2)//매개변수 2개
{
return num1 + num2;//return은 값을 반환한다는 뜻이 있다. return만 독립적으로 쓰일 경우 함수를 빠져나간다는 뜻이다.
}
int main(void)
{
int result;
result = Add(3, 4);//인자의 전달, 2개 전달됨
printf("덧셈결과1: %d \n", result);
result = Add(5, 8);//괄호 안의 수 2개를 '전달인자'라고 한다.
printf("덧셈결과2: %d \n", result);
return 0;
//함수를 호출하고 나면 메모리 공간에서 사라지는데 이를 스택 메모리라고 한다.
//위의 함수 호출 구문은 총 2번 호출하는 것이고 바로 다음 문장에서 메모리 공간에서 사라지는 것
}
스택 메모리의 특성에 대한 내용이 주석에 적혀 있다.
함수 활용 예제
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int Add(int num1, int num2) //인자전달 O , 반환값 O
{
return num1 + num2;
}
void ShowAddResult(int num) //인자전달 O, 반환값 X
{
printf("덧셈 결과 출력: %d\n", num);
}
int ReadNum(void) //인자전달 X, 반환값 O
{
int num;
scanf_s("%d", &num);
return num;
}
void HowToUseThisProg(void) //인자전달 X, 반환값 X
{
printf("두 개의 정수를 입력하시면 덧셈 결과가 출력됩니다. \n");
printf("자! 그럼 두개의 정수를 입력하세요. \n");
}
int main(void)
{
int result, num1, num2;
HowToUseThisProg();
num1 = ReadNum();
num2 = ReadNum();
result = Add(num1, num2);
ShowAddResult(result);
return 0;
}
함수 활용 예제 2
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main(void)
{
printf("3과 4중에서 큰 수는 %d이다. \n", NumberCompare(3, 4));
printf("7과 2중에서 큰 수는 %d이다. \n", NumberCompare(7, 2));
return 0;
}
int NumberCompare(int num1, int num2)
{
if (num1 > num2)
return num1;
else
return num2;
}
함수 활용 예제 3
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int AbsoCompare(int num1, int num2);
int GetAbsoValue(int num);
//함수 선언만 하고 만들지도 않음
int main(void)
{
int num1, num2;
printf("두 개의 정수 입력: ");
scanf_s("%d %d", &num1, &num2);
printf("%d와 %d중 절대값이 큰 정수: %d\n",
num1, num2, AbsoCompare(num1, num2));
return 0;
}
//함수를 정의 했다.
int AbsoCompare(int num1, int num2)
{
if (GetAbsoValue(num1) > GetAbsoValue(num2))
return num1;
else
return num2;
}
//함수를 정의 했다.
int GetAbsoValue(int num)
{
if (num < 0)
return num * (-1);
else
return num;
}
3항연산자 사용 함수 문제
3개의 정수를 인자로 전달받아서 그중 가장 큰 수를 반환하는 함수와 작은수를 반환하는 함수를 정의해보자
더보기
#include<stdio.h>
int main(void)
{
int num1, num2, num3;
printf("3개의 정수를 입력 하세요");
scanf_s("%d %d %d", &num1,&num2,&num3);
printf("가장 큰 수는 %d 입니다.\n", MaxValue(num1, num2, num3));
printf("가장 작은 수는 %d 입니다.\n", MinValue(num1, num2, num3));
}
int MaxValue(int n1, int n2, int n3)
{
if (n1 > n2)
return (n1 > n3) ? n1 : n3;
else
return (n2 > n3) ? n2 : n3;
}
int MinValue(int n1, int n2, int n3)
{
if (n1 < n2)
return (n1 < n3) ? n1 : n3;
else
return (n2 < n3) ? n2 : n3;
return;
}
'게임프로그래밍 개발 수업 > C언어 수업' 카테고리의 다른 글
C언어 1차원 배열, 문자열의 입력과 출력 (0) | 2023.03.28 |
---|---|
C언어 for문의 중첩, 지역변수와 전역변수 (0) | 2023.03.27 |
게임 개발반 프로그래밍 07 C언어 else if, do while문, Continue, Break, 3항연산자 (0) | 2023.03.23 |
게임 개발반 프로그래밍 05 C언어 수업 상수와 기본 자료형, (0) | 2023.03.21 |
프로그래밍04 - C언어 n진수 표현과 비트연산, For문 (0) | 2023.03.20 |