728x90

 


ํ•จ์ˆ˜๋ž€?

  • ํ•จ์ˆ˜๋Š” ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ๋งŒ๋“  ์ฝ”๋“œ ๋ฌถ์Œ.
  • ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋‚˜์ค‘์— ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์† ๋ถˆ๋Ÿฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ์ถœ๋ ฅ์„ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐ•์Šค๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

// ์˜ˆ์‹œ
#include <stdio.h>

int sum(int a, int b);		// sum ํ•จ์ˆ˜ ์„ ์–ธ

int main(void){
	int x=3, y=4;
    int result;
    
    result = sum(x, y)		// sum ํ•จ์ˆ˜ ํ˜ธ์ถœ
    printf("result๋Š” %d์ž…๋‹ˆ๋‹ค.\n", result);
    
    return 0;
}

int sum(int a, int b){		// sum ํ•จ์ˆ˜ ์ •์˜
	int hap;
    
    hap = a+b;
    
    return hap;
}

ํ•จ์ˆ˜์˜ 3๊ฐ€์ง€ ์ƒํƒœ

1. ํ•จ์ˆ˜ ์ •์˜

  • ํ•จ์ˆ˜ ์ •์˜ = ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ
    • ๋ฐ˜ํ™˜ํ˜•: ํ•จ์ˆ˜๊ฐ€ ์ˆ˜ํ–‰๋œ ํ›„์˜ ๊ฒฐ๊ณผ
    • ํ•จ์ˆ˜์ด๋ฆ„: ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์— ๋งž๋Š” ์ด๋ฆ„
    • ๋งค๊ฐœ๋ณ€์ˆ˜: ํ•จ์ˆ˜๊ฐ€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ
๋ฐ˜ํ™˜ํ˜• ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜)
{
     ํ•จ์ˆ˜ ๋‚ด์šฉ
}

 

int sum(int a, int b){
	int hap;
    
    hap = a + b;
    
    return hap;
}
! return์€ ํ•จ์ˆ˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ์ œ์–ด๋ฌธ

  • ๋ฐ˜ํ™˜ํ˜•: sum ํ•จ์ˆ˜๋Š” ๋‘ ์ •์ˆ˜์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ int๋ฅผ ์‚ฌ์šฉ
  • ํ•จ์ˆ˜์ด๋ฆ„: ๋‘ ์ •์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ˆ sum์œผ๋กœ ํ•จ์ˆ˜๋ช… ์ง€์ •
  • ๋งค๊ฐœ๋ณ€์ˆ˜: sum ํ•จ์ˆ˜๋Š” ๋‘ ์ •์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฏ€๋กœ intํ˜• ๋ณ€์ˆ˜๋ฅผ 2๊ฐœ ์„ ์–ธ

2. ํ•จ์ˆ˜ ์„ ์–ธ

  • ํ•จ์ˆ˜ ์„ ์–ธ = ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒˆ๋กœ ๋งŒ๋“  ํ•จ์ˆ˜๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ์ˆ˜์˜ ํ˜•ํƒœ๋ฅผ ์•Œ๋ฆฌ๋Š” ์—ญํ• 
  • C์–ธ์–ด์—์„œ๋Š” ๊ฐ€์žฅ ๋จผ์ € main() ํ•จ์ˆ˜๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ปดํŒŒ์ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— main() ํ•จ์ˆ˜ ๋’ค์— ๋“ฑ์žฅํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์ง€ ๋ชปํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ
  • ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋‹ค๊ณ  mainํ•จ์ˆ˜ ์•ž์— ์•Œ๋ ค์•ผ ํ•œ๋‹ค! โ–ถ ํ•จ์ˆ˜์„ ์–ธ
  • ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ main ํ•จ์ˆ˜ ๋ฐ‘์— ์ฐจ๋ก€๋กœ ์ •์˜ํ•˜๊ณ , main ํ•จ์ˆ˜ ์•ž์—๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ž‘์„ฑ
๋ฐ˜ํ™˜ํ˜• ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜);
int sum(int a, int b);

3. ํ•จ์ˆ˜ ํ˜ธ์ถœ

  • ํ•จ์ˆ˜ ํ˜ธ์ถœ = ๋งŒ๋“  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
  • ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ ์€ ํ›„ ๊ด„ํ˜ธ๋ฅผ ์—ด๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์„ ๋„ฃ์€ ํ›„ ๊ด„ํ˜ธ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ
  • ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ =(๋Œ€์ž… ์—ฐ์‚ฐ์ž)๋ฅผ ํ†ตํ•ด ๋Œ€์ž…๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜ํ™˜๋ฐ›์„ ๋ณ€์ˆ˜ = ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜);
result = sum(x, y);

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•จ์ˆ˜ ์œ ํ˜•

1. ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ชจ๋“  ์žˆ๋Š” ๊ฒฝ์šฐ

  • ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ชจ๋‘ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์˜ ํ•จ์ˆ˜
int Add(int num1, int num2) 	//๋งค๊ฐœ๋ณ€์ˆ˜๋Š” intํ˜• ์ •์ˆ˜ ๋‘˜์ด๋ฉฐ, ์ด ๋‘˜์„ ์ด์šฉํ•œ ๋ง์…ˆ์„ ์ง„ํ–‰
{
	int result = num1 + num2;
    
    return result; 		// return์— ์˜ํ•ด result์˜ ๊ฐ’์ด ๋ฐ˜ํ™˜
}

2. ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ

  • ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋‹ค๊ณ  ํ•ด์„œ ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— int๋ฅผ ์“ฐ์ง€ ์•Š๊ณ , void๋ผ๋Š” ๋ฐ˜ํ™˜ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค.
void ShowAddResult(int num)		// ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•œ void๋Š” ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป
{
	printf("๋ง์…ˆ๊ฒฐ๊ณผ ์ถœ๋ ฅ : %d\n", num);
    					// return๋ฌธ์ด ์—†๋‹ค.
}

3. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ

  • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
int InputNum(void) 		// ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•œ void๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป
{
	int num;
    scanf("%d", &num);
    
    return num;
}

4. ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ชจ๋‘ ์—†๋Š” ๊ฒฝ์šฐ

  • ๋‘˜ ๋‹ค ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ํ•จ์ˆ˜
  • ์ด ํ•จ์ˆ˜๋Š” ๋‹จ์ˆœํžˆ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ „๋‹ฌ๋„, ๋ฐ˜ํ™˜๊ฐ’๋„ ๋ถˆํ•„์š”
  • ๋”ฐ๋ผ์„œ, ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ํ˜• ๋‘˜๋‹ค void๋กœ ์„ ์–ธ
void HowToUse(void) 
{
	printf("๋‘๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ง์…ˆ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.\n");
    printf("์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ํ•˜์„ธ์š”.\n")
}

๋ณ€์ˆ˜์˜ ์กด์žฌ๊ธฐ๊ฐ„๊ณผ ์ ‘๊ทผ๋ฒ”์œ„

1. ์ง€์—ญ๋ณ€์ˆ˜

  • ์ง€์—ญ๋ณ€์ˆ˜ = ํ•œ์ •๋œ ์ง€์—ญ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜
  • ์ค‘๊ด„ํ˜ธ {} ์•ˆ์— ์„ ์–ธ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜
  • ๊ทธ๋ž˜์„œ ํ•จ์ˆ˜๊ฐ€ ์ค‘๊ด„ํ˜ธ๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์‚ฌ๋ผ์ง„๋‹ค.
#include <stdio.h>

int main(void)
{
	{
    	int num = 3;
    }
   	
    printf("%d\n", num);
    
    return 0;
}

์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ

โ–ถ ๋ณ€์ˆ˜ num์€ ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์€ ๋ธ”๋ก ์•ˆ์— ์„ ์–ธ๋˜์–ด ๋ธ”๋ก ๋ฐ–์—์„œ num์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ.

#include <stdio.h>

int main(void)
{
	int num = 3;
    {
    	printf("%d\n", num);
    }
   	return 0;
}

โ–ถ ๋ณ€์ˆ˜ num์€ main ํ•จ์ˆ˜ ๋ธ”๋ก์— ์„ ์–ธ๋˜์–ด ์žˆ๊ณ , printf๊ฐ€ ์žˆ๋Š” ๋ธ”๋ก๋„ main ํ•จ์ˆ˜ ๋ธ”๋ก ์•ˆ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— num์ด main ํ•จ์ˆ˜ ๋ธ”๋ก ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.


2. ์ „์—ญ๋ณ€์ˆ˜

  • ์ „์—ญ๋ณ€์ˆ˜ = ์–ด๋–ค ๋ณ€์ˆ˜ ์˜์—ญ ๋‚ด์—์„œ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜
  • ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์ค‘๊ด„ํ˜ธ ๋‚ด์— ์„ ์–ธ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ „์—ญ๋ณ€์ˆ˜์˜ ์„ ์–ธ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๊ธ‰์  ์ œํ•œ.
  • ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
#include <stdio.h>

int num = 3;

int main(void)
{
	printf("%d\n", num);
    
    return 0;
}

โ–ถ num์€ main ํ•จ์ˆ˜ ๋ฐ”๊นฅ์— ์„ ์–ธ๋˜์–ด ์–ด๋””์—์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅ

main ํ•จ์ˆ˜์—์„œ ํ˜ธ์ถœํ•œ ๋‹ค์Œ์—, num ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์ด๋•Œ num ๊ฐ’์€ ์ „์—ญ ๋ณ€์ˆ˜ num ๊ฐ’์ด๋‹ค.


3. static ๋ณ€์ˆ˜

  • void ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ static ์„ ์–ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด static ๋ณ€์ˆ˜(์ •์  ์ง€์—ฐ ๋ณ€์ˆ˜)๊ฐ€ ๋œ๋‹ค.
  • static ๋ณ€์ˆ˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก ์•ˆ์— ์„ ์–ธํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜ ์ง€์—ญ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ ๋ฒ”์œ„๊ฐ€ ๋ธ”๋ก ์•ˆ์œผ๋กœ ์ œํ•œ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ ์ผ๋ฐ˜ ์ง€์—ญ๋ณ€์ˆ˜์™€ static ๋ณ€์ˆ˜๋Š” ์ €์žฅ ๊ณต๊ฐ„์ด ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๊ธฐ๊ฐ„์ด ๋‹ค๋ฅด๋‹ค.
static ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์ด๋ฆ„;

 

#include <stdio.h>

void plusplus(void);	// plusplus ํ•จ์ˆ˜ ์„ ์–ธ

int main(void)
{
	int i;
    for (i=0; i<5; i++)
    	plusplus();
     return 0;
 }
 
 void plusplus(void)
 {
 	int num1 = 0;		// ์ผ๋ฐ˜ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์„ ์–ธ
    static int num2 = 0;	// static ๋ณ€์ˆ˜๋กœ ์„ ์–ธ
    
    num1++;
    num2++;
    
    printf("local : %d, static : %d\n", num1, num2);
 }

// ์‹คํ–‰๊ฒฐ๊ณผ
local : 1, static : 1
local : 1, static : 2
local : 1, static : 3
local : 1, static : 4
local : 1, static : 5
  • ์ผ๋ฐ˜ ์ง€์—ญ๋ณ€์ˆ˜:
    • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜๊ณ  ๋ฐ˜ํ™˜๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค.
    • ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜ ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กญ๊ฒŒ ํ• ๋‹น๋˜๊ณ  ๊ทธ๋•Œ๋งˆ๋‹ค 1๋กœ ์ดˆ๊ธฐํ™”.
  • static ๋ณ€์ˆ˜:
    • ์ €์žฅ ๊ณต๊ฐ„์ด ํ• ๋‹น๋˜์–ด ์œ ์ง€ํ•˜๋Š” ์‹œ์ ์ด ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋ฌด๊ด€.
    • static ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์กด์žฌํ•œ๋‹ค.
    • ๊ทธ๋ž˜์„œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

4. register ๋ณ€์ˆ˜

  • ์ง€์—ญ๋ณ€์ˆ˜์— register ๋ผ๋Š” ์„ ์–ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ณ€์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์‹  CPU์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ์•ˆ์— ์žˆ์–ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ณต๊ฐ„์ด๋ฏ€๋กœ ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
register ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์ด๋ฆ„;

โ–ถ register ์„ ์–ธ์„ ์ถ”๊ฐ€ํ•ด๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ฉ๋‹นํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ์— ํ• ๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค.

๋ฐ˜๋Œ€๋กœ register ์„ ์–ธ์„ ํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ํ• ๋‹นํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ์— ํ• ๋‹น๋œ๋‹ค.

์ง€๊ธˆ์€ ๊ฑฐ์˜ ์ด์šฉ๋˜์ง€ ์•Š๋Š” ์ง€์ •์ž


์žฌ๊ท€ํ•จ์ˆ˜

  • ์žฌ๊ท€ํ•จ์ˆ˜ = ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜
  • ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ด ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋๋‚  ์ˆ˜ ์žˆ๋Š” ์ง€์ ์„ ๋งˆ๋ จํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๊ณ  runtime error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

#include <stdio.h>

int factorial(int n)
{
	if(n==0)
    	return 1;
    return n * factorial(n-1);
 }
 
 int main(void)
 {
 	printf("3! = %d\n", factorial(3));
    
    return 0;
 }
 
 //์‹คํ–‰๊ฒฐ๊ณผ
 3! = 6
  • ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์€ ์ž์—ฐ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— intํ˜•์œผ๋กœ ์ง€์ •
  • factorial ํ•จ์ˆ˜์—์„œ๋Š” n๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ 1์”ฉ ๊ฐ์†Œํ•˜๋ฉด์„œ ์žฌ๊ท€ํ˜ธ์ถœ์„ ํ•œ๋‹ค.
  • if ๋ฌธ์€ ํƒˆ์ถœ์กฐ๊ฑด์œผ๋กœ n์ด  0์ด ๋˜์—ˆ์„ ๋•Œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋„๋ก ์ •์˜๋˜์–ด ์žˆ๋‹ค.

โ–ถ factorial ํ•จ์ˆ˜๋Š” ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ์ฆ‰์‹œ ๊ตฌํ•ด์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์žฌ๊ท€ํ˜ธ์ถœ๋กœ n -1์„ ๊ณ„์† ์ „๋‹ฌํ•˜๋‹ค๊ฐ€ n์ด 0์ผ ๋•Œ ๋น„๋กœ์†Œ 1์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด์„œ n๊ณผ ๊ณฑํ•˜๊ณ  ๋‹ค์‹œ ๊ฒฐ๊ด๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ ๋’ค n๊ณผ ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณฑํ•˜์—ฌ ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์—์„œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ๋“ฏํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

 

 

์ถœ์ฒ˜: https://sejong-kr.libguides.com/c.php?g=942233&p=6822325

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํฌ์ธํ„ฐ  (0) 2024.08.15
๋ฐฐ์—ด  (0) 2024.08.14
๋ฐ˜๋ณต๋ฌธ  (0) 2024.07.31
์กฐ๊ฑด๋ฌธ  (0) 2024.07.31
์—ฐ์‚ฐ์ž  (0) 2024.07.31
728x90

[ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง๊ฐ์‚ผ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ณ„ํ‘œ๋ฅผ ๊ทธ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ]

*
**
***
****
  • ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ฉด, ํ–‰์ด 1์”ฉ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์—ด๋„ 1์”ฉ ์ฆ๊ฐ€ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด 4๊ฐœ์˜ ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ”๊นฅ ํฌ๋ฌธ์€ 4๋ฒˆ ์ˆ˜ํ–‰์ด ๋˜์–ด์•ผ ํ•˜๋ฉฐ,
    ์•ˆ์ชฝ ํฌ๋ฌธ์€ ๊ฐ ํ–‰์— ๋Œ€ํ•ด ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•˜๋Š” *์˜ ์ˆ˜๋งŒํผ ๋Œ๋ฉด์„œ *์„ ์ถœ๋ ฅํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
for (int i = 0; i < 4; i++) {       ->i๋Š” 0๋ถ€ํ„ฐ 3๊นŒ์ง€ ๋Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
	for (int j = 0; j <= i; j++) {    ->j๋Š” 0๋ถ€ํ„ฐ i๊นŒ์ง€ ๋Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
		printf("*");
	}
	printf("\n");
}
i                  ๋ณ„์˜ ๊ฐœ์ˆ˜
0    *                1       
1    **               2        
2    ***              3         
3    ****             4

์‹                   i + 1
#include <stdio.h>

int main() {

	for (int i = 0; i < 4; i++) {
		for (int j = 0; j <= i; j++) {
			printf("*");
		}
		printf("\n");
	}

	return 0;

}
#include <stdio.h>

int main() {

	for (int i = 1; i <= 4; i++) {
		for (int j = 1; j <= i; j++) {
			printf("*");
		}
		printf("\n");
	}

	return 0;

}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ n์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ณ„ํ‘œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

์˜ˆ)

n์— 2๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

* *
*
n์— 3์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

* * *
* *
*
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=0; i<n; i++){
        for(int j=n; j > i; j--){
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ n์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ณ„ํ‘œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

์˜ˆ)

n์— 2๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

*
* *
n์— 3์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

*
* *
* * *
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=0; i<n; i++){
        for(int j=0; j<=i; j++){
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}

โ˜…๋ฌธ์ œ: ์ •์ˆ˜ n์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ณ„ํ‘œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

์˜ˆ)

n์— 2๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

** **
*
n์— 3์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ

*** *** ***
** ** 
*
#include <stdio.h>

int main() {
    // ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ์ž…๋ ฅ
    int n;
    scanf("%d", &n);
    
    // i๋Š” ๊ฐ ํ–‰๋งˆ๋‹ค *์„ ๋ช‡ ๋ฌถ์Œ์”ฉ ์ถœ๋ ฅ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    for(int i = n; i >= 1; i--) {
        // j๋Š” ๊ฐ ํ–‰๋งˆ๋‹ค *๋ฌถ์Œ์„ i๋ฒˆ ์ถœ๋ ฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
        for(int j = 1; j <= i; j++) {
            // k๋Š” *๋ฌถ์Œ์„ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
            // *๋ฌถ์Œ์€ ํ•ญ์ƒ i๊ฐœ์˜ *๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
            for(int k = 1; k <= i; k++)
                printf("*");
            
            // *๋ฌถ์Œ์„ ๋งŒ๋“  ์ดํ›„์—๋Š” ๊ผญ ๊ณต๋ฐฑ์„ ๋„์›Œ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
            printf(" ");
        }
        // ํ–‰๋งˆ๋‹ค ํ•œ ์ค„์”ฉ ๋„์›Œ์ค๋‹ˆ๋‹ค.
        printf("\n");
    }
    
    return 0;
}

โ˜… ๋ฌธ์ œ: ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ * ๋กœ ์ด๋ฃจ์–ด์ง„ ์ง๊ฐ์‚ผ๊ฐํ˜•์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

์˜ˆ) n = 3 ์ผ ๋•Œ

*
***
*****
์˜ˆ) n = 5 ์ผ ๋•Œ

*
***
*****
*******
*********
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=1; i<=n; i++){
        for(int j=0; j<2*i-1; j++){
           printf("*");
        }
     printf("\n");
    }
    return 0;
}
728x90

[3 * 5 ํฌ๊ธฐ์˜ ๊ฒฉ์ž์— ์ „๋ถ€ ์ˆซ์ž 1์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ]

for (int i = 0; i < 3; i++) {
	for (int j = 0; j < 5; j++) {
		printf("1");
	}
	printf("\n");
}
  • ์ฆ‰, ๋ฐ”๊นฅ ํฌ๋ฌธ์€ ํ–‰(์„ธ๋กœ์ค„ ๋ฐฉํ–ฅ)์— ๊ด€์—ฌํ•˜๊ฒŒ ๋˜๊ณ , ์•ˆ์ชฝ ํฌ๋ฌธ์€ ์—ด(๊ฐ€๋กœ์ค„ ๋ฐฉํ–ฅ)์— ๊ด€์—ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 5๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ถœ๋ ฅ๋  ๋•Œ๋งˆ๋‹ค ํ•œ ์ค„์”ฉ ๋„์›Œ์ค˜์•ผ ํ•˜๋ฏ€๋กœ ๋์— printf("\n") ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ 2์ค‘ ํฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ณ€์ˆ˜๋ฅผ i, j ์ด๋ ‡๊ฒŒ 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒ˜์Œ i = 0์œผ๋กœ ์„ค์ •์ด ๋˜๊ณ , ๊ทธ ์•ˆ์—์„œ j ๊ฐ’์ด 0์—์„œ 4๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ ๊ฐ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” 1์„ ์ ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ n์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ณ„ํ‘œ๋กœ ์ •์‚ฌ๊ฐํ˜•์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

ex) n์ด 3์ธ ๊ฒฝ์šฐ
***
***
***
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);

	for(int i = 0; i < n; i++) {
		for(int j = 0; j < n; j++)
			printf("*");
		printf("\n");
	}
	
	return 0;
}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ n๊ณผ m์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ณ„ํ‘œ๋กœ ์ด๋ฃจ์–ด์ง„ ์ง์‚ฌ๊ฐํ˜•์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜ ์˜ˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

ex) n์— 3์„ m์— 5๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ
* * * * *
* * * * *
* * * * *
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d",&n,&m);

    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++)
            printf("* ");
        printf("\n");
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ * ๋กœ ์ด๋ฃจ์–ด์ง„ n x n ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜•์„ ๋‘ ๊ฐœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

**
**

**
**
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);

    for(int i=0; i<2; i++){
        for(int j=0; j<n; j++){
            for(int k=0; k<n; k++)
                printf("*");
            printf("\n");
        }
        printf("\n");
    }    
    return 0;
}
728x90
  • a, b, c ๋ชจ๋‘ ์ง์ˆ˜์ธ์ง€ ์–ด๋–ป๊ฒŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?
    →์ด๋ ‡๊ฒŒ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” if, and ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
if (a % 2 == 0 && b % 2 == 0 && c % 2 == 0) {
    printf("even");
}

 

  • ํ•˜์ง€๋งŒ ๋งŒ์•ฝ a๋ถ€ํ„ฐ b ์‚ฌ์ด์— ์žˆ๋Š” ์ˆ˜๋“ค์ด ์ „๋ถ€ ์ง์ˆ˜์ธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?
  • a๋ถ€ํ„ฐ b๊นŒ์ง€ ์ˆซ์ž๋“ค์„ ์ผ์ผ์ด ํ™•์ธํ•ด ๋ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— for loop์ด ํ•„์š”ํ•˜๊ณ , ์ด์ฒ˜๋Ÿผ ๋ชจ๋“  ์„ ํƒ์ง€๊ฐ€ ๋‹ค ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋Š” ๋’ค์ง‘์–ด ์ƒ๊ฐํ•ด ๋‹จ ํ•˜๋‚˜๋ผ๋„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€๋กœ ํŒ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด์„ ๋งŒ์กฑ bool type ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ๋Š” ๋‹ค ๋งŒ์กฑํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ true๋ฅผ ๋‘๊ณ , ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์„ false๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
bool satisfied = true;
for (int i = a; i <= b; i++) {
	if (์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด) {
		satisfied = false;
	}
}
if (satisfied == true) {
	printf("Satisfied");
}
else {
	printf("Not satisfied");
}

๋‹จ, C์—์„œ true / false๋ผ๋Š” bool type์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” #include <stdbool.h>๋ฅผ ๊ผญ ์ ์–ด์ฃผ์…”์•ผ ํ•จ์— ์œ ์˜ํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>
#include <stdbool.h>

int main() {

	int a, b;
	scanf("%d %d", &a, &b);

	bool satisfied = true;
	for (int i = a; i <= b; i++) {
		if (i % 2 != 0) {
			satisfied = false;
		}
	}
	if (satisfied == true) {
		printf("Satisfied");
	}
	else {
		printf("Not satisfied");
	}

	return 0;

}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ a, b๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, a์ด์ƒ b์ดํ•˜์— c์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์ „ํ˜€ ์—†๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int a, b, c;
    scanf("%d %d %d",&a,&b,&c);

    bool satisfied = true;
    for(int i=a; i<=b; i++){
        if(i%c == 0){
            satisfied = false;
        }
    }
    if(satisfied == true){
        printf("YES");
    }
    else{
        printf("NO");
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์†Œ์ˆ˜๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜ ์ค‘ 1๊ณผ ์ž๊ธฐ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ˆซ์ž n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์ด ์†Œ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int n;
    scanf("%d",&n);

    bool satisfied = true;
    for(int i=2; i<n; i++){
        if(n%i==0){
            satisfied = false;
        }
    }
    if(satisfied == true){
        printf("P");
    }
    else{
        printf("C");
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: 5๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฃผ์–ด์ง„ ๋ชจ๋“  ์ˆ˜๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int n;

    bool satisfied = true;
    for(int i=1; i<=5; i++){
        scanf("%d",&n);
        if(n%3!=0){
            satisfied = false;
        }
    }
    if(satisfied == true){
        printf("1");
    }
    else{
        printf("0");
    }

    return 0;
}

 

728x90
  • a, b, c์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์ง์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?
    ์ด๋ ‡๊ฒŒ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” if, or ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
if (a % 2 == 0 || b % 2 == 0 || c % 2 == 0) {
    printf("even");
}

 

ํ•˜์ง€๋งŒ ๋งŒ์•ฝ a๋ถ€ํ„ฐ b ์‚ฌ์ด์— ์žˆ๋Š” ์ˆ˜๋“ค ์ค‘ ์ง์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€๋Š” ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?

  • a๋ถ€ํ„ฐ b๊นŒ์ง€ ์ˆซ์ž๋“ค์„ ์ผ์ผ์ด ํ™•์ธํ•ด ๋ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— for loop์ด ํ•„์š”ํ•˜๊ณ , ์ด์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์„ ํƒ์ง€๋“ค ์ค‘ ๋‹จ ํ•˜๋‚˜๋ผ๋„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€๋Š” true, false ๋‘ ๊ฐ’์„ ๊ฐ–๋Š” bool type์˜ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • bool type ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ๋Š” false๋ฅผ ๋‘๊ณ , ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์„ true๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋‹จ ํ•˜๋‚˜๋ผ๋„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
	int a, b;
	bool satisfied = false;
	for (int i = a; i <= b; i++) {
		if (์กฐ๊ฑด ๋งŒ์กฑ) {
			satisfied = true;
		}
	}
	if (satisfied == true) {
		printf("Exists");
	}
	else {
		printf("Not exists");
	}

๋‹จ, C์—์„œ true / false ๋ผ๋Š” bool type์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” #include <stdbool.h>๋ฅผ ๊ผญ ์ ์–ด์ฃผ์…”์•ผ ํ•จ์— ์œ ์˜ํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>
#include <stdbool.h>

int main() {

	int a, b;
	scanf("%d %d", &a, &b);

	bool satisfied = false;
	for (int i = a; i <= b; i++) {
		if (i % 2 == 0) {
			satisfied = true;
		}
	}
	if (satisfied == true) {
		printf("Exists");
	}
	else {
		printf("Not exists");
	}

	return 0;

}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ a, b๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, a์ด์ƒ b์ดํ•˜์— c์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋‹จ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);

    bool satisfied = false;
    for(int i=a; i<=b; i++){
        if(i%c==0){
            satisfied = true;
        }
    }
    if(satisfied==true){
        printf("YES");
    }
    else {
        printf("NO");
    }


    return 0;
}

โ–ถ๋ฌธ์ œ:

์ •์ˆ˜ ์ด  ์ด์ƒ  ์ดํ•˜์˜ ์–ด๋–ค ์ •์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด, ์€ ํ•ฉ์„ฑ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋Š” ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ ํ•ฉ์„ฑ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์€  ์ด์ƒ  ์ดํ•˜์˜ ์–ด๋–ค ์ •์ˆ˜๋กœ๋„ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ฉ์„ฑ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ •์ˆ˜ ์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ด ํ•ฉ์„ฑ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int n;
    scanf("%d",&n);

    bool satisfied = false;
    for(int i=2; i<=(n-1); i++){
        if(n%i==0){
            satisfied = true;
        }
    }
    if(satisfied == true){
        printf("C");
    }
    else{
        printf("N");
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์ •์ˆ˜ a, b๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, a์ด์ƒ b์ดํ•˜์˜ ์ˆ˜ ์ค‘์—์„œ 1,920๊ณผ 2,880์˜ ๊ณต์•ฝ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํŒ๋‹จํ•ด๋ณด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

#include <stdio.h>
#include <stdbool.h>

int main() {
    int a, b;
    scanf("%d %d",&a,&b);

    bool satisfied = false;

    for(int i=a; i<=b; i++){
        if(1920%i==0 && 2880%i==0){
            satisfied = true;
        }
    }
    if(satisfied == true){
        printf("1");
    }
    else{
        printf("0");
    }
    return 0;
}

 

728x90
  • ์ง์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ™€์ˆ˜๊ฐ€ ์•„๋‹ ๋•Œ๊นŒ์ง€ 2๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ์ตœ์ดˆ๋กœ ํ™€์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„์— ํ•ด๋‹น ๊ฐ’์„ ์ถœ๋ ฅํ•œ ๋’ค ๋๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?
  • ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์•ผ ๋๋‚ ์ง€๋ฅผ ์•Œ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ–ˆ์„ ๋•Œ break๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
#include <stdio.h>
#include <stdbool.h>

int main() {

	int n;
	scanf("%d", &n);

	while (true) {
		printf("current val is %d\n", n);
		if (n % 2 == 0) {
			printf("n is even\n");
			n = n / 2;
		}
		else {
			printf("n is odd\n");
			break;
		}
	}
	printf("%d", n);

	return 0;

}

โ–ถ ๋ฌธ์ œ: ์ž์—ฐ์ˆ˜ ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ์กฐ๊ฑด์— ๋”ฐ๋ผ, ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ์ง์ˆ˜์ธ ๊ฒฝ์šฐ, ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
  • ์ด ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ, ์„ ๊ณฑํ•˜๊ณ  ์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ช‡ ๋ฒˆ์„ ๋ฐ˜๋ณตํ•ด์•ผ, ์ด ๋˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด,  ์ธ ๊ฒฝ์šฐ,
 ์ˆœ์„œ๋กœ ์ด ๋˜๋ฏ€๋กœ ๋‹ต์ด ์ด ๋ฉ๋‹ˆ๋‹ค.

int main() {
    int n, cnt=0;
    scanf("%d",&n);

    while(true){
        if(n==1){
            break;
        }
        if(n%2==0){
            n/=2;
        }
        else if(n%2==1){
            n=n*3+1;
        }
        cnt++;
        
    }
    printf("%d",cnt);
    return 0;
}

์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ์„ ์ž…๋ ฅ๋ฐ›์•„,  ๋ฅผ ๋งŒ์กฑํ•˜๋Š”  ๊ฐ’์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n,x;
    int cnt=0;

    scanf("%d",&n);

    while(1){
        n/=2;
        
        if(n==0){
            break;
        }
        cnt++;
    }
    printf("%d",cnt);
    return 0;
}

์ •์ˆ˜ n์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ๋•Œ, cnt ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ํ–ˆ์„ ๋•Œ ์ฒ˜์Œ์œผ๋กœ 1,000 ์ด์ƒ์ด ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. cnt์˜ ๊ฐ’์„ ๊ตฌํ•ด๋ณด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

  • n์ด ์ง์ˆ˜์ผ ๋•Œ, n์— 3์„ ๊ณฑํ•˜๊ณ  1์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.
  • n์ด ํ™€์ˆ˜์ผ ๋•Œ, n์— 2๋ฅผ ๊ณฑํ•˜๊ณ  2๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
#include <stdio.h>

int main() {
    int n;
    int cnt = 0;

    scanf("%d",&n);

    while(1){
        if(n>=1000){
            break;
        }
        if(n%2==0){
            n = n*3+1;
        }
        else{
            n = n*2+2;
        }
        cnt++;
    }
    printf("%d",cnt);

    return 0;
}
728x90
  • 10๋ณด๋‹ค ํฐ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ๊นŒ์ง€ ๊ณ„์† ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ฉฐ ์ˆซ์ž๋ฅผ ๋”ํ•ด์ฃผ๋‹ค๊ฐ€ 10๋ณด๋‹ค ํฐ ์ˆœ๊ฐ„์— ๋”ํ•˜๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”๊ณ  ํ•ด๋‹น ๊ฐ’์„ ์ถœ๋ ฅํ•œ ๋’ค ๋๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?
  • ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” ์ž…๋ ฅ์„ ๋ช‡ ๋ฒˆ ๋ฐ›์•„์•ผ ํ• ์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ while๋ฌธ์„ ์ด์šฉํ•œ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค์–ด ํ•ด๊ฒฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌดํ•œ ๋ฃจํ”„๋Š” ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ ˆ๋Œ€ ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์—†๋Š” loop์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ, while(1)๋ผ๋Š” ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋Š” ์กฐ๊ฑด๊ณผ ํŠน์ • ์กฐ๊ฑด ๋งŒ์กฑ ์‹œ ํƒˆ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” break๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • c++์—์„œ๋Š” while(true) ๋ผ๋Š” ๋ฌธ๋ฒ•๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, c์—์„œ๋Š” true๋ผ๋Š” bool type์„ ์ด์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— while(1)๋กœ ์ž‘์„ฑํ•˜์‹œ๋Š” ๊ฒŒ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.
while (1) {
    ์ฝ”๋“œ 1
    if (์กฐ๊ฑด){
        ์ฝ”๋“œ2
        break;
    }
    ์ฝ”๋“œ3
}
์ฝ”๋“œ4
int n;
while (1) {
    scanf("%d", &n);
    if (n >= 10) {
        ์ฝ”๋“œ1
        break;
    }
    ์ฝ”๋“œ2
}
์ฝ”๋“œ3
#include <stdio.h>

int main() {

	int n;
	int sum_val = 0;

	while (1) {
		scanf("%d", &n);
		printf("current val is %d\n", n);
		if (n >= 10) {
			printf("val is greater than or equal to 10\n");
			break;
		}
		printf("val is smaller than 10\n");
		sum_val += n;
	}
	printf("%d", sum_val);

	return 0;

}

  • ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ for loop ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. for loop ์˜ ์ดˆ๊ธฐํ™”์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์„ ๋ชจ๋‘ ์ƒ๋žตํ•˜๋ฉด for ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๊ฐ€ ๋ฌดํ•œ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.
#include <stdio.h>

int main() {

	for(;;) {
		printf("b\n");
	}

	return 0;

}

  • while(true)๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ์—ญ์‹œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, C์—์„œ true / false ๋ผ๋Š” bool type์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” #include <stdbool.h>๋ฅผ ๊ผญ ์ ์–ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
#include <stdio.h>
#include <stdbool.h>

int main() {
    int n;
    while (true) {
        scanf("%d", &n);
        if (n >= 10) {
            ์ฝ”๋“œ1
            break;
        }
        ์ฝ”๋“œ2
    }
    ์ฝ”๋“œ3

    return 0;
}

โ–ถ๋ฌธ์ œ: ์ˆซ์ž๋ฅผ ๊ณ„์† ์ž…๋ ฅ๋ฐ›๋‹ค๊ฐ€ 0์ด ์ž…๋ ฅ๋˜๊ธฐ ์ „๊นŒ์ง€์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n;
    
    while(1){ 
        scanf("%d",&n);  
         
        if(n==0){
            break;
        }  
        printf("%d\n",n);  
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์ˆซ์ž 25๋ฅผ ๋งž์ถ”๋Š” ๊ฒŒ์ž„์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๊ฐ’์ด 25๋ณด๋‹ค ์ž‘์œผ๋ฉด Higher๋ฅผ, 25๋ณด๋‹ค ํฌ๋ฉด Lower๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€, 25๊ฐ€ ์ฃผ์–ด์ง€๋ฉด Good์„ ์ถœ๋ ฅํ•˜๊ณ  ์ค‘๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n;

    while(1){
        scanf("%d",&n);
        if(n<25){
            printf("Higher\n");
        }
        else if(n>25){
            printf("Lower\n");
        }
        else if(n==25){
            printf("Good\n");
            break;
        }
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: A๋ฐ˜์˜ ์ถœ์„๋ฒˆํ˜ธ 1๋ฒˆ์€ John, 2๋ฒˆ์€ Tom, 3๋ฒˆ์€ Paul, 4๋ฒˆ์€ Sam์ž…๋‹ˆ๋‹ค. ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹นํ•˜๋Š” ํ•™์ƒ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ๋ฒˆํ˜ธ ์ด์™ธ์˜ ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด Vacancy๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n;

    while(1){
        scanf("%d",&n);
        if(n==1){
            printf("John\n");
        }
        else if(n==2){
            printf("Tom\n");
        }
        else if(n==3){
            printf("Paul\n");
        }
        else if(n==4){
            printf("Sam\n");
        }
        else{
            printf("Vacancy");
            break;
        }
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์–ด๋–ค ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ํ™€์ˆ˜๋ฉด ์•„๋ฌด ์ž‘์—…๋„ ํ•˜์ง€ ์•Š๊ณ , ์ง์ˆ˜๋ฉด 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์„ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…์„ 3๋ฒˆ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n,cnt=0;

    while(1){
        scanf("%d",&n);

        if(n%2==0){
            cnt++;
        }
        else if(n%2==1){
            continue;
        }
        printf("%d\n",n/2);

        if(cnt >= 3){
            break;
        }
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ์„ธ๋กœ์˜ ๊ธธ์ด์™€ ๋ฌธ์ž๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ž C๊ฐ€ ์ฃผ์–ด์ง€๋Š” ์ค„๊นŒ์ง€ ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int w,h;
    char c;

    while(1){
        scanf("%d %d %c",&w,&h,&c);
        printf("%d\n",w*h);

        if(c=='C'){
            break;
        }
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: ๋ช‡ ๋ช…์˜ ์‚ฌ๋žŒ๋“ค์˜ ๋‚˜์ด๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ฒ˜์Œ์œผ๋กœ 20๋Œ€๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋‚˜์ด๋Œ€์˜ ์‚ฌ๋žŒ์ด ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ์ž…๋ ฅ๋œ ๋‚˜์ด๋“ค์˜ ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n, sum = 0, cnt=0;

    while(1){
        scanf("%d",&n);

        if(n<20||n>29){
            break;
        }
        sum+=n;
        cnt++;
    }
    printf("%.2lf",(double)sum/cnt);
    return 0;
}
728x90

1. ๋ฌธ์ œ 01-1 [C++ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ]

โ–ถ ๋ฌธ์ œ1: ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด 5๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ, ๊ทธ ํ•ฉ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์ž, ๋‹จ, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ค„์ ธ์•ผ ํ•œ๋‹ค.

1๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: 1
2๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: 2
3๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: 3
4๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: 4
5๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: 5
ํ•ฉ๊ณ„: 15
#include <iostream>
using namespace std;

int main() {
    int n, sum = 0;

    for (int i = 1; i <= 5; i++) {
        cout << i << "๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ: ";
        cin >> n;
        sum += n;
    }
    cout << "ํ•ฉ๊ณ„: " << sum;

    return 0;
}

 

โ–ถ ๋ฌธ์ œ2: ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ๋กœ ์ž…๋ ฅ๋ฐ›์•„์„œ, ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์ž.

#include <iostream>
using namespace std;

int main() {
    char name[10];
    char num[20];


    cout << "์ด๋ฆ„ ์ž…๋ ฅ: ";
    cin >> name;
    cout << "๋ฒˆํ˜ธ ์ž…๋ ฅ: ";
    cin >> num;

    cout << "์ด๋ฆ„: " << name << endl;
    cout << "๋ฒˆํ˜ธ: " << num;

    return 0;
}

 

โ–ถ ๋ฌธ์ œ3: ์ˆซ์ž๋ฅผ ํ•˜๋‚˜ ์ž…๋ ฅ๋ฐ›์•„์„œ ๊ทธ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์ž. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ 5๋ฅผ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ๊ตฌ๊ตฌ๋‹จ์—์„œ 5๋‹จ์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

#include <iostream>
using namespace std;

int main() {
    int n;

    cout << "์ •์ˆ˜ ์ž…๋ ฅ: ";
    cin >> n;
    for (int i = 1; i <= 9; i++) {
        cout << n << " x " << i << " = " << n * i << endl;
    }
    return 0;
}

 

โ–ถ ๋ฌธ์ œ4: ํŒ๋งค์›๋“ค์˜ ๊ธ‰์—ฌ ๊ณ„์‚ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์ž. ์ด ํšŒ์‚ฌ๋Š” ๋ชจ๋“  ํŒ๋งค์›์—๊ฒŒ ๋งค๋‹ฌ 50๋งŒ ์›์˜ ๊ธฐ๋ณธ ๊ธ‰์—ฌ์™€ ๋ฌผํ’ˆ ํŒ๋งค ๊ฐ€๊ฒฉ์˜ 12%์— ํ•ด๋‹นํ•˜๋Š” ๋ˆ์„ ์ง€๊ธ‰ํ•œ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฏผ์ˆ˜๋ผ๋Š” ์นœ๊ตฌ์˜ ์ด๋ฒˆ ๋‹ฌ ๋ฌผํ’ˆ ํŒ๋งค ๊ธˆ์•ก์ด 100๋งŒ ์›์ด๋ผ๋ฉด, 50+100x0.12 = 62, ๋”ฐ๋ผ์„œ 62๋งŒ ์›์„ ๊ธ‰์—ฌ๋กœ ์ง€๊ธ‰๋ฐ›๋Š”๋‹ค.

๋‹จ, ์•„๋ž˜์˜ ์‹คํ–‰์˜ ์˜ˆ์—์„œ ๋ณด์ด๋“ฏ์ด ์ด๋Ÿฌํ•œ ๊ธ‰์—ฌ์˜ ๊ณ„์‚ฐ์€ -1์ด ์ž…๋ ฅ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋˜์–ด์•ผ ํ•œ๋‹ค.

ํŒ๋งค ๊ธˆ์•ก์„ ๋งŒ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅ(-1 to end): 100
์ด๋ฒˆ ๋‹ฌ ๊ธ‰์—ฌ: 62๋งŒ์›
ํŒ๋งค ๊ธˆ์•ก์„ ๋งŒ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅ(-1 to end): 200
์ด๋ฒˆ ๋‹ฌ ๊ธ‰์—ฌ: 74๋งŒ์›
ํŒ๋งค ๊ธˆ์•ก์„ ๋งŒ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅ(-1 to end): -1
ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
#include <iostream>
using namespace std;

int Salary(int money) {
    return (int)(50 + money * 0.12);
}
int main() {
    int money;

    while (1) {
        cout << "ํŒ๋งค ๊ธˆ์•ก์„ ๋งŒ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅ(-1 to end) : ";
        cin >> money;
        if (money == -1) {
            cout << "ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.";
            break;
        }
        cout << "์ด๋ฒˆ ๋‹ฌ ๊ธ‰์—ฌ: " << Salary(money) << "๋งŒ์›" << endl;
    }
    
    return 0;
}

2. ๋ฌธ์ œ 01-2 [ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ]

โ–ถ ๋ฌธ์ œ: ๋‹ค์Œ main ํ•จ์ˆ˜์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” swap ํ•จ์ˆ˜๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉ ํ•ด์„œ ๊ตฌํ˜„ํ•ด ๋ณด์ž.

int main(void)
{
	int num1=20, num2=30;
    swap(&num1, &num2);
    std::cout<<num1<<' '<<num2<<std::endl;
    
    char ch1='A', ch2='Z';
    swap(&ch1, &ch2);
    std::cout<<ch1<<' '<<ch2<<std::endl;
    
    double dbl1=1.111, dbl2=5.555;
    swap(&dbl1, &dbl2);
    std::cout<<dbl1<<' '<<dbl2<<std::endl;
    return 0;
}
#include <iostream>
using namespace std;

void swap(int * ptr1, int * ptr2) {		// ๋งค๊ฐœ๋ณ€์ˆ˜์— ํฌ์ธํ„ฐ๊ฐ€ ์™€์•ผ๋จ!
	int temp = *ptr1;
	*ptr1 = *ptr2;
	*ptr2 = temp;
}
void swap(char * ptr1, char* ptr2) {
	char temp = *ptr1;
	*ptr1 = *ptr2;
	*ptr2 = temp;
}
void swap(double * ptr1, double* ptr2) {
	double temp = *ptr1;
	*ptr1 = *ptr2;
	*ptr2 = temp;
}

int main(void) {
	int num1 = 20, num2 = 30;
	swap(&num1, &num2);			// ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํฌ์ธํ„ฐ์ด๋ฏ€๋กœ ์ฃผ์†Œ์—ฐ์‚ฐ์ž ํฌํ•จ!
	cout << num1 << ' ' << num2 << endl;

	char ch1 = 'A', ch2 = 'Z';
	swap(&ch1, &ch2);
	cout << ch1 << ' ' << ch2 << endl;

	double dbl1 = 1.111, dbl2 = 5.555;
	swap(&dbl1, &dbl2);
	cout << dbl1 << ' ' << dbl2 << endl;
	return 0;
}

3. ๋ฌธ์ œ 01-2 [๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋””ํดํŠธ ๊ฐ’]

โ–ถ ๋ฌธ์ œ1: ์˜ˆ์ œ DefaultValue3.cpp์— ์ •์˜๋œ ํ•จ์ˆ˜ BoxVolume๋ฅผ '๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋””ํดํŠธ ๊ฐ’ ์ง€์ •'ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ, 'ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ'์˜ ํ˜•ํƒœ๋กœ ์žฌ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ๋ฌผ๋ก  main ํ•จ์ˆ˜๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฉฐ, ์‹คํ–‰๊ฒฐ๊ณผ๋„ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.

#include<iostream>
int BoxVolume(int lenth, int width = 1, int height = 1);

int main(void){
	std::cout<<"[3,3,3] : "<<BoxVolume(3,3,3)<<std::endl;
    std::cout<<"[5,5,D] : "<<BoxVolume(5,5)<<std::endl;
    std::cout<<"[7,D,D] : "<<BoxVolume(7)<<std::endl;
    return 0;
}

int BoxVolume(int length, int width, int height){
	return length*width*height;
}

#include<iostream>
int BoxVolume(int length, int width, int height) {
    return length * width * height;
}
int BoxVolume(int length, int width) {
    return length * width * 1;
}
int BoxVolume(int length) {
    return length * 1 * 1;
}

int main(void) {
    std::cout << "[3,3,3] : " << BoxVolume(3, 3, 3) << std::endl;
    std::cout << "[5,5,D] : " << BoxVolume(5, 5) << std::endl;
    std::cout << "[7,D,D] : " << BoxVolume(7) << std::endl;
    return 0;
}

 

โ–ถ ๋ฌธ์ œ2: ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ์˜ ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์–ด๋– ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ด ๋ณด์ž.

int SimpleFunc(int a = 10)
{
	return a+1;
}
int SimpleFunc(void)
{
	return 10;
}

→ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ, ๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ ํ˜ธ์ถœ์ด ๋˜๋ฏ€๋กœ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


4. ๋ฌธ์ œ 01-4 [ํŒŒ์ผ์˜ ๋ถ„ํ• ]

โ–ถ ๋ฌธ์ œ: ์˜ˆ์ œ NameSp2.cpp๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด 3๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋ถ„ํ• ํ•ด์„œ ์ปดํŒŒ์ผํ•ด๋ณด์ž.

  • ํ—ค๋”ํŒŒ์ผ: main ํ•จ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋‘ ํ•จ์ˆ˜์˜ ์„ ์–ธ์„ ์‚ฝ์ž…ํ•œ๋‹ค.
  • ์†Œ์ŠคํŒŒ์ผ1: main ํ•จ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋‘ ํ•จ์ˆ˜์˜ ์ •์˜๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
  • ์†Œ์ŠคํŒŒ์ผ2: main ํ•จ์ˆ˜๋งŒ ์‚ฝ์ž…ํ•œ๋‹ค.
// NameSp2.cpp
#include <iostream>

namespace BestComImpl
{
	void SimpleFunc(void);
}
namespace ProgComImpl
{
	void SimpleFunc(void);
}

int main(void)
{
	BestComImpl::SimpleFunc();
    ProgComImpl::SimpleFunc();
    return 0;
}

void BestComImpl::SimpleFunc(void)
{
	std::cout<<"BestCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
}
void ProgComImple::SimpleFunc(void)
{
	std::cout<<"ProgCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
}

//SimpleFunc.h(ํ—ค๋”ํŒŒ์ผ)
#pragma once
namespace BestComImpl
{
	void SimpleFunc(void);
}
namespace ProgComImpl
{
	void SimpleFunc(void);
}
// SimpleFunc.cpp (์†Œ์ŠคํŒŒ์ผ1)
#include <iostream>
#include "SimpleFunc.h"
// ํ—ค๋”ํŒŒ์ผ ์‚ฝ์ž…๋ฐฉ๋ฒ•

void BestComImpl::SimpleFunc(void) {
	std::cout << "BestCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜" << std::endl;
}
void ProgComImpl::SimpleFunc(void) {
	std::cout << "ProgCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜" << std::endl;
}
ํ—ค๋”ํŒŒ์ผ ์‚ฝ์ž…๋ฐฉ๋ฒ•: #include "ํ—ค๋”ํŒŒ์ผ ์ด๋ฆ„.h"
// SimpleMain.cpp(๋ฉ”์ธ ์†Œ์ŠคํŒŒ์ผ)

#include "SimpleFunc.h"

int main(void) {
	BestComImpl::SimpleFunc();
	ProgComImpl::SimpleFunc();
	return 0;
}

 

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์—ดํ˜ˆC++]Chapter 01 - C์–ธ์–ด ๊ธฐ๋ฐ˜์˜ C++ 1  (0) 2024.08.07
728x90

๋ชฉ์ฐจ

  1. printf์™€ scanf๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ์ž…์ถœ๋ ฅ ๋ฐฉ์‹
  2. ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ(Function Overloading)
  3. ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋””ํดํŠธ ๊ฐ’(Default Value)
  4. ์ธ๋ผ์ธ(inline) ํ•จ์ˆ˜
  5. ์ด๋ฆ„ ๊ณต๊ฐ„(namespace)์— ๋Œ€ํ•œ ์†Œ๊ฐœ

 

1. printf์™€ scanf๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ์ž…์ถœ๋ ฅ ๋ฐฉ์‹

[c++ ๋ฒ„์ „์˜ Hello World ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ]

โ€ป ํ—ค๋” ํŒŒ์ผ์˜ ์„ ์–ธ: #include <iostream>

โ€ป ์ถœ๋ ฅ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ: std::cout<<'์ถœ๋ ฅ ๋Œ€์ƒ 1'<<'์ถœ๋ ฅ ๋Œ€์ƒ 2'<<'์ถœ๋ ฅ ๋Œ€์ƒ 3';

โ€ป ๊ฐœํ–‰: std::endl

 

→ C์–ธ์–ด์—์„œ๋Š” ์ถœ๋ ฅ์˜ ๋Œ€์ƒ์— ๋”ฐ๋ผ ์„œ์‹ ์ง€์ •์ด ๋‹ฌ๋ฆฌํ–ˆ์ง€๋งŒ, C++์—์„œ๋Š” ๊ทธ๋Ÿฌํ•œ ๊ณผ์ •์ด ๋ถˆํ•„์š”.

 

[scanf๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ž…๋ ฅ]

โ€ป ์ž…๋ ฅ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ: std::cin>>'๋ณ€์ˆ˜'

→ ํ•จ์ˆ˜์˜ ์ค‘๊ฐ„ ๋ถ€๋ถ„์—์„œ๋„ ๋ณ€์ˆ˜์˜ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

#include <iostream>

int main(void) {
    int val1;
    std::cout<<"์ฒซ๋ฒˆ์งธ ์ˆซ์ž์ž…๋ ฅ: ";
    std::cin>>val1;

    int val2;
    std::cout<<"๋‘๋ฒˆ์งธ ์ˆซ์ž์ž…๋ ฅ: ";
    std::cin>>val2;

    int result=val1+val2;
    std::cout<<"๋ง์…ˆ๊ฒฐ๊ณผ: "<<result<<std::endl;
    return 0;
}
 

 

[C++์˜ ์ง€์—ญ๋ณ€์ˆ˜ ์„ ์–ธ]

#include <iostream>

int main(void) {
    int val1, val2;
    int result = 0;
    std::cout<<"๋‘ ๊ฐœ์˜ ์ˆซ์ž์ž…๋ ฅ: ";
    std::cin>>val1>>val2;

    if(val1<val2){
        for(int i=val1+1; i<val2; i++)
            result+=i;
    }
    else{
        for(int i=val2+1; i<val1; i++)
            result+=i;
    }
    std::cout<<"๋‘ ์ˆ˜ ์‚ฌ์ด์˜ ์ •์ˆ˜ ํ•ฉ: "<<result<<std::endl;
    return 0;
}
 
๋‘ ๊ฐœ์˜ ์ˆซ์ž์ž…๋ ฅ: 3 7
๋‘ ์ˆ˜ ์‚ฌ์ด์˜ ์ •์ˆ˜ ํ•ฉ: 15
 
  • for๋ฌธ ์•ˆ์—์„œ๋„ ๋ณ€์ˆ˜์˜ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • std::cin์„ ํ†ตํ•ด์„œ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ๋ถ„์€ ์ŠคํŽ˜์ด์Šค ๋ฐ”, ์—”ํ„ฐ, ํƒญ๊ณผ ๊ฐ™์€ ๊ณต๋ฐฑ์„ ํ†ตํ•ด์„œ ์ด๋ค„์ง„๋‹ค.

 

[๋ฐฐ์—ด ๊ธฐ๋ฐ˜์˜ ๋ฌธ์ž์—ด ์ž…์ถœ๋ ฅ]

#include <iostream>

int main(void) {
    char name[100];
    char lang[200];

    std::cout<<"์ด๋ฆ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ";
    std::cin>>name;

    std::cout<<"์ข…์•„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ";
    std::cin>>lang;

    std::cout<<"๋‚ด ์ด๋ฆ„์€ "<<name<<"์ž…๋‹ˆ๋‹ค. \n";
    std::cout<<"์ œ์ผ ์ข‹์•„ํ•˜๋Š” ์–ธ์–ด๋Š” "<<lang<<"์ž…๋‹ˆ๋‹ค."<<std::endl;
    return 0;
}
 
์ด๋ฆ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์œ ๋นˆ
์ข‹์•„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? C++
๋‚ด ์ด๋ฆ„์€ ์œ ๋นˆ์ž…๋‹ˆ๋‹ค.
์ œ์ผ ์ข‹์•„ํ•˜๋Š” ์–ธ์–ด๋Š” C++์ž…๋‹ˆ๋‹ค.
 
 

2. ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ(Function Overloading)

[ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ดํ•ด]

โ–ถ C++์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ 'ํ•จ์ˆ˜์˜ ์ด๋ฆ„'๊ณผ '์ „๋‹ฌ๋˜๋Š” ์ธ์ž์˜ ์ •๋ณด'๋ฅผ ๋™์‹œ์— ์ฐธ์กฐํ•˜์—ฌ ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ๊ฒฐ์ •

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์„ ์–ธ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋„ ์ •์˜ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด๋Ÿฌํ•œ ํ˜•ํƒœ์˜ ํ•จ์ˆ˜ ์ •์˜ → ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ(Function Overloading)

#include <iostream>

int MyFunc(int num){
    num++;
    return num;
}

int MyFunc(int a, int b){
    return a+b;
}

int main(void) {
    MyFunc(20); //MyFunc(int num) ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ
    MyFunc(30, 40); //MyFunc(int a, int b) ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ
    return 0;
}
 

[ํ•จ์ˆ˜ ์˜ค๋ฒ„ ๋กœ๋”ฉ์˜ ์˜ˆ]

int MyFunc(char c){...}
int MyFunc(int n){...}
 

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์ด ๋‹ค๋ฅด๋ฏ€๋กœ ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ ์„ฑ๋ฆฝ

int MyFunc(int n){...}
int MyFunc(int n1, int n2){...}
 

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ ์„ฑ๋ฆฝ

void MyFunc(int n){...}
int MyFunc(int n){...}
 

→ ๋ฐ˜ํ™˜ํ˜•์˜ ์ฐจ์ด๋Š” ํ•จ์ˆ˜ ์˜ค๋ฒ„ ๋กœ๋”ฉ์˜ ์กฐ๊ฑด์„ ์„ฑ๋ฆฝ X


3. ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋””ํดํŠธ ๊ฐ’

[๋งค๊ฐœ๋ณ€์ˆ˜์— ์„ค์ •ํ•˜๋Š” '๋””ํดํŠธ ๊ฐ’'์˜ ์˜๋ฏธ]

int MyFunc(int num=7){
    return num+1;
}
 

→ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด 7์ด ์ „๋‹ฌ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ์˜ ๋””ํดํŠธ ๊ฐ’์€ 7, ๋”ฐ๋ผ์„œ MyFunc();์™€ MyFunc(7)์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.

int MyFunc(int num1=5, int num2=7){
    return num1+num2;
}
 

→ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ๊ฐ 5์™€ 7์ด ์ „๋‹ฌ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

๋”ฐ๋ผ์„œ MyFunc();์™€ MyFunc(5,7)์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.

 

[๋””ํดํŠธ ๊ฐ’์€ ํ•จ์ˆ˜์˜ ์„ ์–ธ์—๋งŒ ์œ„์น˜]

#include <iostream>

int Adder(int num1=1, int num2=2);

int main(void) {
    std::cout<<Adder()<<std::endl;
    std::cout<<Adder(5)<<std::endl;
    std::cout<<Adder(3, 5)<<std::endl;
    return 0;
}

int Adder(int num1, int num2){
    return num1+num2;
}
 
3
7
8
 

โ€ป ํ•จ์ˆ˜์˜ ์„ ์–ธ์„ ๋ณ„๋กœ๋„ ๋‘˜ ๋•Œ์—๋Š” ๋””ํดํŠธ ๊ฐ’์˜ ์„ ์–ธ์„ ํ•จ์ˆ˜์˜ ์„ ์–ธ๋ถ€์— ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ˜์˜ ๋””ํดํŠธ ๊ฐ’์˜ ์ง€์ • ์—ฌ๋ถ€๋ฅผ ์•Œ์•„์•ผ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ๋ฌธ์žฅ์„ ์ ์ ˆํžˆ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

[๋ถ€๋ถ„์  ๋””ํดํŠธ ๊ฐ’ ์„ค์ •]

int YourFunc(int num1, int num2=5, int num3=7){...}
    YourFunc(10); //YourFunc(10, 5, 7);
    YourFunc(10, 20); //YourFunc(10, 10, 7);
 

→ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ผ๋ถ€์—๋งŒ ๋””ํดํŠธ ๊ฐ’์„ ์ง€์ •ํ•˜๊ณ , ์ฑ„์›Œ์ง€์ง€ ์•Š์€ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋งŒ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

int YourFunc(int num1, int num2, int num3=30) {...}       (o)
int YourFunc(int num1, int num2=20, int num3=30) {...}    (o)
int YourFunc(int num1=10, int num2=20, int num3=30) {...} (o)
 

→ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž๊ฐ€ ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๋ฏ€๋กœ, ๋””ํดํŠธ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ์ ธ์•ผ ํ•œ๋‹ค.

 

int WrongFunc(int num1=10, int num2, int num3) {...}    (x)
int WrongFunc(int num1=10, int num2=20, int num3) {...} (x)
 

→ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž๊ฐ€ ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๋ฏ€๋กœ, ์˜ค๋ฅธ์ชฝ์ด ๋นˆ ์ƒํƒœ๋กœ ์™ผ์ชฝ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋งŒ ์ผ๋ถ€ ์ฑ„์›Œ์ง„ ๋””ํดํŠธ ๊ฐ’์€ ์˜๋ฏธ๋ฅผ ๊ฐ–์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ์ผ์œผํ‚จ๋‹ค.


4. ์ธ๋ผ์ธ(inline) ํ•จ์ˆ˜

[๋งคํฌ๋กœ ํ•จ์ˆ˜์˜ ์žฅ์ ๊ณผ ํ•จ์ˆ˜์˜ inline ์„ ์–ธ]

#define SQUARE(x) ((x)*(x))

int main(void) {
    std::cout << SQUARE(5) << std::endl;
    return 0;
}
 

↓ ์„ ํ–‰ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ

int main(void) {
    std::cout << ((5)*(5)) << std::endl;
    return 0;
}
 
  • ์žฅ์ : ํ•จ์ˆ˜๊ฐ€ ์ธ๋ผ์ธํ™”๋˜์–ด ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ์ : ํ•จ์ˆ˜์˜ ์ •์˜ ๋ฐฉ์‹์ด ์ผ๋ฐ˜ ํ•จ์ˆ˜์— ๋น„ํ•ด์„œ ๋ณต์žกํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋ณต์žกํ•œ ํ•จ์ˆ˜์˜ ์ •์˜์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
inline ํƒ€์ž… ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜) {
         ์ •์˜....
}
inline int SQUARE(int x){
    return x*x;
}
int main(void) {
    std::cout << SQUARE(5) << std::endl;
    std::cout << SQUARE(12) << std::endl;
    return 0;
}
 
25
144
 
  • ํ‚ค์›Œ๋“œ inline ์„ ์–ธ์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•จ์ˆ˜์˜ ์ธ๋ผ์ธํ™”๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  • inline ์„ ์–ธ์ด ๋˜์–ด๋„ ์ธ๋ผ์ธ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ , inline ์„ ์–ธ์ด ์—†์–ด๋„ ์ธ๋ผ์ธ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งคํฌ๋กœ ํ•จ์ˆ˜์˜ ์žฅ์ ์€ ์ทจํ•˜๊ณ  ๋‹จ์ ์€ ๋ณด์™„ํ•œ ๊ฒƒ์ด C++์˜ ์ธ๋ผ์ธ ํ•จ์ˆ˜์ด๋‹ค.

 

[์ธ๋ผ์ธ ํ•จ์ˆ˜์—๋Š” ์—†๋Š” ๋งคํฌ๋กœ ํ•จ์ˆ˜๋งŒ์˜ ์žฅ์ ]

#define SQUARE(x) ((x)*(x))
 

↓ ๋งคํฌ๋กœ ํ•จ์ˆ˜๋Š” ์ž๋ฃŒํ˜•์— ๋…๋ฆฝ์ ์ด๋‹ค.

std::cout<< SQUARE(12);    //intํ˜• ํ•จ์ˆ˜ํ˜ธ์ถœ
std::cout<< SQUARE(3.15);  //doubleํ˜• ํ•จ์ˆ˜ํ˜ธ์ถœ
 

โ€ป inline ์„ ์–ธ๋œ ํ•จ์ˆ˜๋ฅผ ์œ„์˜ ํ˜•ํƒœ๋กœ ํ˜ธ์ถœํ•˜๋ ค๋ฉด, ๊ฐ ์ž๋ฃŒํ˜• ๋ณ„๋กœ ํ•จ์ˆ˜๊ฐ€ ์˜ค๋ฒ„๋กœ๋”ฉ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ฆ‰, ๋งคํฌ๋กœ ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์ž๋ฃŒํ˜•์— ๋…๋ฆฝ์ ์ด์ง€ ๋ชปํ•˜๋‹ค.

  • inline int SQUARE(int x) { return x*x; }
  • intํ˜• ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์˜๋œ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

5.์ด๋ฆ„ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์†Œ๊ฐœ

[์ด๋ฆ„ ๊ณต๊ฐ„์˜ ๊ธฐ๋ณธ ์›๋ฆฌ]

namespace BestComImpl
{
      // ์ด๋ฆ„๊ณต๊ฐ„ ๋‚ด๋ถ€
}
namespace BestComImpl{
    void SimpleFunc(void){
        std::cout<<"BestCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
    }
}

namespace ProgComImpl{
    void SimpleFunc(void){
        std::cout<<"ProgCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
    }
}
int main(void) {
    BestComImpl::SimpleFunc();   //์ด๋ฆ„๊ณต๊ฐ„ BestComImpl์— ์ •์˜๋œ SimpleFunc์˜ ํ˜ธ์ถœ
    ProgComImpl::SimpleFunc();   //์ด๋ฆ„๊ณต๊ฐ„ ProgComImpl์— ์ •์˜๋œ SimpleFunc์˜ ํ˜ธ์ถœ
    return 0;
}
 
  • ์กด์žฌํ•˜๋Š” ์ด๋ฆ„ ๊ณต๊ฐ„์ด ๋‹ค๋ฅด๋ฉด ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ•จ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰์— ์žˆ์–ด์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์˜ ์ถฉ๋Œ์„ ๋ง‰์„ ๋ชฉ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฆ„ ๊ณต๊ฐ„์ด๋‹ค.
  • โ€ป๋ฒ”์œ„ ์ง€์ • ์—ฐ์‚ฐ์ž: ::
  • ์ด๋ฆ„๊ณต๊ฐ„ :: ํ•จ์ˆ˜();

 

[์ด๋ฆ„ ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜์˜ ํ•จ์ˆ˜ ์„ ์–ธ๊ณผ ์ •์˜์˜ ๋ถ„๋ฆฌ]

namespace BestComImpl{
    void SimpleFunc(void);     // ์ด๋ฆ„๊ณต๊ฐ„ ์ƒ์„ฑ, ํ•จ์ˆ˜ ์„ ์–ธ
}

namespace ProgComImpl{
    void SimpleFunc(void);
}

int main(void) {
    BestComImpl::SimpleFunc();
    ProgComImpl::SimpleFunc();  // ์ด๋ฆ„๊ณต๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ
    return 0;
}
// ํ•จ์ˆ˜ ์ •์˜
void BestComImpl::SimpleFunc(void){
    std::cout<<"BestCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
}

void ProgComImpl::SimpleFunc(void){
    std::cout<<"ProgCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
}
 

→ ์ด๋ฆ„ ๊ณต๊ฐ„ BestComImpl์— ์œ„์น˜ํ•˜๋Š” ํ•จ์ˆ˜ SimpleFunc์˜ ์„ ์–ธ๊ณผ ์ •์˜์˜ ๋ถ„๋ฆฌ

→ ์ด๋ฆ„ ๊ณต๊ฐ„ ProgComImpl์— ์œ„์น˜ํ•˜๋Š” ํ•จ์ˆ˜ SimpleFunc์˜ ์„ ์–ธ๊ณผ ์ •์˜์˜ ๋ถ„๋ฆฌ

[์ด๋ฆ„๊ณต๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ]
์ด๋ฆ„๊ณต๊ฐ„ :: ํ•จ์ˆ˜์ด๋ฆ„();

[์ด๋ฆ„๊ณต๊ฐ„ ํ•จ์ˆ˜ ์ •์˜]
ํƒ€์ž… ์ด๋ฆ„๊ณต๊ฐ„::ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜){
    .... ํ•จ์ˆ˜์ •์˜....
}

 

[๋™์ผํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„ ๋‚ด์—์„œ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ]

namespace BestComImpl{
    void SimpleFunc(void);
}
namespace BestComImpl{
    void PrettyFunc(void);
}
 
  • ์„ ์–ธ๋œ ์ด๋ฆ„ ๊ณต๊ฐ„์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๋‹ค๋ฉด, ์ด ๋‘˜์€ ๋™์ผํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  • ์ฆ‰, SimpleFunc์™€ PrettyFunc๋Š” ๋™์ผํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„ ์•ˆ์— ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค.

 

void BestComImpl::SimpleFunc(void){
    std::cout<<"BestCom์ด ์ •์˜ํ•œ ํ•จ์ˆ˜"<<std::endl;
    PrettyFunc();       // ๋™์ผ ์ด๋ฆ„๊ณต๊ฐ„
    ProgComImpl::SimpleFunc();   // ๋‹ค๋ฅธ ์ด๋ฆ„๊ณต๊ฐ„
}

void BestComImpl::PrettyFunc(void){
    std::cout<<"So Pretty!!"<<std::endl;
}
 
  • ์ด๋ฆ„ ๊ณต๊ฐ„์„ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๋ฌธ์ด ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜์™€ ๋™์ผํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„ ์•ˆ์—์„œ ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค.
  • ๋”ฐ๋ผ์‚ฌ SimpleFunc ํ•จ์ˆ˜ ๋‚ด์—์„œ๋Š” ์ด๋ฆ„ ๊ณต๊ฐ„์„ ๋ช…์‹œํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ PrettyFunc ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

[์ด๋ฆ„ ๊ณต๊ฐ„์˜ ์ค‘์ฒฉ]

namespace Parent{      //์ด๋ฆ„๊ณต๊ฐ„ Parent
    int num=2;         //Parent::num
    namespace SubOne{  //Parent::SubOne
        int num=3;     //Parent::SubOne::num 
    }
    namespace SubTwo{  //Parent::SubTwo
        int num=4;     //Parent::SubTwo::num
    }
}
 
ํ˜ธ์ถœ
std::cout<<Parent::num<<std::endl;
std::cout<<Parent::SubOne::num<<std::endl;
std::cout<<Parent::SubTwo::num<<std::endl;
  • ์ด๋ฆ„ ๊ณต๊ฐ„์€ ์ค‘์ฒฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ฒŒ๋” ์ด๋ฆ„ ๊ณต๊ฐ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

[std::cout, std::cin, std::endl]

std::cout → ์ด๋ฆ„๊ณต๊ฐ„ std์— ์„ ์–ธ๋œ cout
std::cin  → ์ด๋ฆ„๊ณต๊ฐ„ std์— ์„ ์–ธ๋œ cin
std::endl → ์ด๋ฆ„๊ณต๊ฐ„ std์— ์„ ์–ธ๋œ endl
 
namespace std{
    cout...
    cin...
    endl...
}
 
  • <iostream>์— ์„ ์–ธ๋˜์–ด ์žˆ๋Š” cout, cin ๊ทธ๋ฆฌ๊ณ  endl์€ ์ด๋ฆ„ ๊ณต๊ฐ„ std ์•ˆ์— ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค.
  • ์ด๋ ‡๋“ฏ ์ด๋ฆ„ ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ, C++ ํ‘œ์ค€์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์€ ์ด๋ฆ„ ๊ณต๊ฐ„ std ์•ˆ์— ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค.

 

[using์„ ์ด์šฉํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„์˜ ๋ช…์‹œ]

#include <iostream>

namespace Hybrid{
	void HybFunc(void){
    	std::cout<<"So simple function!"<<std::endl;
        std::cout<<"In namespace Hybrid!"<<std::endl;
        }
}

int main(void){
	using Hybrid::HybFunc;
    HybFunc;
    return 0;
}
  • using ์„ ์–ธ์„ ํ†ตํ•ด์„œ ์ด๋ฆ„๊ณต๊ฐ„์˜ ์ง€์ • ์—†์ด HybFunc ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋‹ค.
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int main(void) {
    int num=20;
    cout<<"Hello World!"<<endl;
    cout<<"Hello"<<"World!"<<endl;
    cout<<num<<' '<<'A';
    cout<<' '<<3.14<<endl;
    return 0;
}
 
  • using ์„ ์–ธ์€ ์ „์—ญ๋ณ€์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•จ์ˆ˜ ๋ฐ–์— ์„ ์–ธ์„ ํ•ด์•ผ ํ•จ!
  • ์ดํ›„๋ถ€ํ„ฐ cin, cout, endl์€ std::cin, std::cout, std::endl์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ์„ ์–ธ

 

#include <iostream>
using namespace std;

int main(void) {
    int num=20;
    cout<<"Hello World!"<<endl;
    cout<<"Hello"<<"World!"<<endl;
    cout<<num<<' '<<'A';
    cout<<' '<<3.14<<endl;
    return 0;
}
 
using namespace std;
  • ์ด๋ฆ„ ๊ณต๊ฐ„ std์— ์„ ์–ธ๋œ ๊ฒƒ์€ std๋ผ๋Š” ์ด๋ฆ„ ๊ณต๊ฐ„์˜ ์„ ์–ธ ์—†์ด ์ ‘๊ทผํ•˜๊ฒ ๋‹ค๋Š” ์„ ์–ธ

 

โ€ป๋„ˆ๋ฌด ๋นˆ๋ฒˆํ•œ using namespace์˜ ์„ ์–ธ์€ ์ด๋ฆ„์˜ ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ์ด๋ฆ„ ๊ณต๊ฐ„์˜ ์„ ์–ธ์„ ์˜๋ฏธ ์—†๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋”ฐ๋ผ์„œ ์ œํ•œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

[์ด๋ฆ„ ๊ณต๊ฐ„์˜ ๋ณ„์นญ ์ง€์ •๊ณผ ์ „์—ญ๋ณ€์ˆ˜์˜ ์ ‘๊ทผ]

namespace AAA{
    namespace BBB{
        namespace CCC{
            int num1;
            int num2;
        }
    }
}
 
namespace ABC=AAA::BBB::CCC;
// AAA::BBB::CCC์— ๋Œ€ํ•ด ACC๋ผ๋Š” ์ด๋ฆ„์˜ ๋ณ„์นญ ์„ ์–ธ ํ›„,

ABC::num1=10;
ABD::num2=20;
// ์œ„์™€ ๊ฐ™์ด ํ•˜๋‚˜์˜ ๋ณ„์นญ์œผ๋กœ ์ด๋ฆ„๊ณต๊ฐ„์˜ ์„ ์–ธ์„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋ฆ„๊ณต๊ฐ„ ๋ณ„์นญ: namespace ABC=AAA::BBB::CCC

  • ์ง€์—ญ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ์ „์—ญ๋ณ€์ˆ˜์™€ ์ด๋ฆ„๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ, ์ „์—ญ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์— ์˜ํ•ด ๊ฐ€๋ ค์ง„๋‹ค
int val=100; // ์ „์—ญ๋ณ€์ˆ˜

int SimpleFunc(void){
    int val=20;  // ์ง€์—ญ๋ณ€์ˆ˜
    val+=3;      // ์ง€์—ญ๋ณ€์ˆ˜ val์˜ ๊ฐ’ 3 ์ฆ๊ฐ€
    ::val+=7;    // ์ „์—ญ๋ณ€์ˆ˜ val์˜ ๊ฐ’ 7 ์ฆ๊ฐ€
}
 

 

  • ๋ฒ”์œ„์ง€์ • ์—ฐ์‚ฐ์ž๋Š” ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ์ „์—ญ๋ณ€์ˆ˜์˜ ์ ‘๊ทผ์—๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
 
int val = 100;  	// ์ „์—ญ๋ณ€์ˆ˜

int SimpleFunc(void){
	int val = 20;	// ์ง€์—ญ๋ณ€์ˆ˜
    val += 3;		// ์ง€์—ญ๋ณ€์ˆ˜ val์˜ ๊ฐ’ 3 ์ฆ๊ฐ€
    ::val += 7;		// ์ „์—ญ๋ณ€์ˆ˜ val์˜ ๊ฐ’ 7 ์ฆ๊ฐ€
  • ์ „์—ญ๋ณ€์ˆ˜ ์ ‘๊ทผ → ::๋ณ€์ˆ˜

 

 

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์—ดํ˜ˆC++]Chapter 01 - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ  (0) 2024.08.08
728x90
  • break์˜ ํฌ๋งท์€ continue์™€ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. break๋Š” if์™€ ๊ฐ™์ด ์“ฐ์ด๋ฉฐ, ํ•ด๋‹น ์กฐ๊ฑด์ด ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด์— ์žˆ๋Š” for loop์„ ์™„์ „ํžˆ ํƒˆ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 
  • break๋Š” ์กฐ๊ฑด๋ฌธ๊ณผ ๊ฐ™์ด ์“ฐ์—ฌ์•ผ ํ•จ์— ์œ ์˜ํ•ฉ๋‹ˆ๋‹ค.
for (int i = a; i < b; i++) {

    ์ฝ”๋“œ1

    if (์กฐ๊ฑด) {
        ์ฝ”๋“œ2 
        break;
    }
        
    ์ฝ”๋“œ3
}

์ฝ”๋“œ4
for (int i = 6; i < 101; i++) {
	์ฝ”๋“œ1
		if (i % 5 == 0) {
			์ฝ”๋“œ2
			break;
		}
	์ฝ”๋“œ3
}
์ฝ”๋“œ4

๋‹ค์Œ ์ฝ”๋“œ์—์„œ๋Š” i๊ฐ€ 6, 7, 8, 9์ธ ๊ฒฝ์šฐ์—๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ฝ”๋“œ1 -> ์ฝ”๋“œ3์ด ๊ณ„์† ์ˆ˜ํ–‰๋˜๋‹ค๊ฐ€, 

i๊ฐ€ 10์ด ๋˜๋Š” ์ˆœ๊ฐ„์— ์ฝ”๋“œ1 -> ์ฝ”๋“œ2๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉฐ for loop์„ ํƒˆ์ถœํ•˜์—ฌ ๋ฐ”๋กœ ์ฝ”๋“œ4๊ฐ€ ์ˆ˜ํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.
#include <stdio.h>

int main() {

	int a = 3, b = 101;
	int prod = 1;

	for (int i = a; i <= b; i++) {
		printf("current val is %d\n", i);
		if (i % 5 == 0) {
			printf("val is multiple of 5\n");
			break;
		}
		printf("val is not a multiple of 5\n");
		prod *= i;
	}

	printf("%d", prod);
	return 0;

}

โ–ถ๋ฌธ์ œ: ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” 1๋ถ€ํ„ฐ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๋”ํ•œ ๊ฐ’์ด n ์ด์ƒ์ด ๋˜๋Š” ์ˆœ๊ฐ„ ๋”ํ•ด์ง„ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main() {
    int n,sum=0;
    scanf("%d",&n);

    for(int i=1; i<=100; i++){
        sum += i;
        if(sum >= n){
            printf("%d",i);
            break;
        }
        
    }
    return 0;
}

โ–ถ๋ฌธ์ œ: n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, 1๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ 10๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๊ณฑ์„ ๊ตฌํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๊ทธ ๊ณฑ์ด n ์ด์ƒ์ด ๋˜๋Š” ์ˆœ๊ฐ„์— ๊ณฑํ•ด์ง„ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

#include <stdio.h>

int main() {
    int n;
    int prod = 1;
    scanf("%d",&n);

    for(int i=1; i<=10; i++){
        prod*=i;
        if(prod >= n){
            printf("%d",i);
            break;
        }
    }

    return 0;
}

โ–ถ๋ฌธ์ œ:

์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์„ ์ฐจ๋ก€๋Œ€๋กœ 1, 2, 3,...์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ 1 ์ดํ•˜๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„๊นŒ์ง€ ๋‚˜๋ˆ—์…ˆ์„ ์ง„ํ–‰ํ•œ ์ดํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

๋‹จ, ๋‚˜๋ˆ—์…ˆ ์ง„ํ–‰ ์‹œ ๊ฐ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์—์„œ ๋ชซ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main() {
    int n;
    int cnt = 0;

    scanf("%d",&n);
    for(int i = 1; i<=100; i++){
        n /= i;
        cnt++;

        if(n<=1){
            printf("%d",cnt);
            break;
        }
    }
    return 0;
}

+ Recent posts