ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   capt_0669
   [C¾ð¾î] Àß ¾ÈµÇ¼­ Ä«ÇÇÀ× ÇÏ´Ù°¡ ÀÌÇØÇÒ·Á°í ³ë·Âñé

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2876 [º¹»ç]


#include <stdio.h>

void F_max_min (int *arr, int size, int **mx, int **mn);

int main()
{
        int arr[5];
        int i;
        int *max, *min;

        for(i=0;i<5;i++)
        {
                printf("5°³ÀÇ Á¤¼ö¸¦ ÀÔ·ÂÇϽÿÀ: ");
                scanf("%d", &arr[i]);
        }

        F_max_min (arr, sizeof(arr)/sizeof(int), &max, &min);
        printf("ÃÖ´ë: %d, ÃÖ¼Ò: %d \n", *max, *min);
        return 0;
}

void F_max_min (int *arr, int size, int **mx, int **mn)
{
        int i;
        int *max, *min;

        max=min=arr;
        for(i=0; i<size; i++)
        {
                if(*max<arr[i])
                        max=&arr[i];
                if(*min>arr[i])
                        min=&arr[i];
        }
        
        *mx=max;
        *mn=min;
}


ÀÌ Äڵ尡 Call-By-Reference ¶û Double pointer¸¦ ÀÌ¿ëÇØ¼­ max¿Í minÀ» ±¸Çϴ°ÍÀä
FunctionÂÊÀ» º¸½Ã¸é
max=min=arr ÀÌÀÖÀݾƿä
¿©±â¼­ ±×´ÙÀ½ ÁÙ¿¡ ÀÖ´Â *max¿Í *minµéÀÌ ÀúÀåµÇ´Âµ¥¿ä

¸¸¾à ¼ýÀÚ¸¦ (17,19,25,6,7)Çϸé
arr[i]Áß¿¡¼­ arrÀÇ °ªÀº i°¡ º¯Çصµ ÁÖ¼Ò´Â ¹Ù²îÁö ¾Ê´Âµ¥
¿Ö ±× ÁÖ¼Ò°¡ ¿¹¸¦ µé¾î 0x0030fa00À̶ó¸é ¿Ö Àú ÁÖ¼Ò°¡ ù¹øÂ° °ªÀÇ ÁÖ¼Ò¸¦ °¡¸£Å°´Â°ÅÁÒ?

±×¸²À» ±×·Áº¸¸é
-------------- 17ÀÇ ÁÖ¼Ò
--------------
--------------
--------------
--------------

--------------19ÀÇ ÁÖ¼Ò
--------------
--------------
--------------
--------------

--------------25ÀÇ ÁÖ¼Ò
--------------
--------------
--------------
--------------

--------------6ÀÇ ÁÖ¼Ò
--------------
--------------
--------------
--------------

--------------5ÀÇ ÁÖ¼Ò
--------------
--------------
--------------
--------------

¿©¼­ Áï arrÀÇ ÁּҴ ù¹øÂ° Ä­ÀÇ ÁÖ¼ÒÀ̴ϱñ ±×·±°ÍÀΰ¡¿ä?

µÑ°Áú¹®Àº
¸Ç ¹Ø¿¡
*mx=max;
*mn=min;
µéÀº ¿Ö ºÙÀº °ÍÀԴϱî?

  Hit : 4365     Date : 2011/02/02 01:32



    
capt_0669 *mx=max;
*mn=min;
À» ÁÖ¼® ó¸®Çϴϱñ ¶Ç ÀÛµ¿ÀÌ ¾ÈµÇ³×¿ä
2011/02/02  
effortkim *mx=max;
*mn=min;
Àº max¿Í minÀÌ °¡¸®Å°´Â ÁÖ¼Ò¸¦ *mx¿Í *mnµµ °¡¸®Å°±â À§ÇÔÀÔ´Ï´Ù.
Áï, mx¿Í mnÀº ´õºíÆ÷ÀÎÅͷμ­, mainÇÔ¼öÀÇ Æ÷ÀÎÅÍÀÇ °ªÀ» ¹Ù²Ù±â À§ÇØ Àü´Þ¹Þ¾Ò½À´Ï´Ù.
ÀÌ Æ÷ÀÎÅÍÀÇ °ªÀº ÁÖ¼Ò°ªÀ̰í, ÀÌ ÁÖ¼Ò°ªÀ» ³Ö¾î ÁØ °ÍÀÔ´Ï´Ù.
2011/02/06  
effortkim ÀÌ ÄÚ´õÀÇ Àǵµ´Â ´ÙÀ½°ú °°½À´Ï´Ù.

1. mainÇÔ¼ö¿¡¼­ max¿Í minÀÌ arrÀÇ ÃÖ´ñ°ª°ú ÃÖ¼Ú°ªÀ» °¡¸®Å°µµ·Ï ÇÑ´Ù.
2. ÀÌ ÀÛ¾÷À» F_max_minÀ̶ó´Â ÇÔ¼ö¿¡¼­ ÇÑ´Ù.

±×·¸´Ù¸é, main¿¡¼­ max¿Í minÀÇ °ªÀº ¾î¶² ÁÖ¼Ò¸¦ °¡¸®ÄÑ¾ß ÇϰÚÁÒ?(Á¤È®È÷´Â intÇü °ø°£ ÁÖ¼ÒÀÔ´Ï´Ù.) Áï, max¿Í minÀÇ °ªÀº ÁÖ¼Ò°ªÀÌ µÇ°Ú½À´Ï´Ù. max¿Í minÀÇ °ªÀ» ¹Ù²Ù±â À§Çؼ­´Â max¿Í minÀ» °¡¸®Å³ ¼ö ÀÖ´Â ÀÚ·áÇüÀÎ ÀÌÁ߯÷ÀÎÅÍ·Î ³Ñ°ÜÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÌÁ߯÷ÀÎÅ͸¦ ¾´ °ÍÀ̱¸¿ä.
ÀÛ¾÷À» ÇÑ ÈÄ¿¡ ÃÖÁ¾ÀûÀ¸·Î F_max_min¿¡¼­ max¿Í minÀº ÀÚ·áÀÇ ÃÖ´ñ°ª°ú ÃÖ¼Ú°ªÀ» °¢°¢ °¡¸®Å³ °ÍÀÔ´Ï´Ù. À̸¦ Àü´Þ¹ÞÀº Æ÷ÀÎÅÍÀÇ Æ÷ÀÎÅÍ(ÀÌÁ߯÷ÀÎÅÍ)°¡ °¡¸®Å°´Â °÷(Æ÷ÀÎÅÍ)¿¡ ÃÖ´ñ°ª°ú ÃÖ¼Ú°ªÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ *mx=max; *mn=min;ÀÌ ºÙ´Â °ÍÀÔ´Ï´Ù.

1¹øÀÇ ´äÀº Áú¹®ÀÚ²²¼­ ¸»¾¸ÇϽŴë·Î ¹è¿­ÀÇ À̸§Àº ±×°ÍÀÇ Ã¹ ¿ä¼Ò(À妽º ¹øÈ£ 0¹øÀÇ ¸Þ¸ð¸® ¹øÁö)¸¦ °¡¸®Åµ´Ï´Ù. ±×¸®°í Áú¹®ÀÚ²²¼­ ±×¸®½Å´ë·Î ¹è¿­À» ÇÒ´ç¹ÞÀ¸¸é ¿¬¼ÓÀûÀÎ °ø°£¿¡ ÇÒ´ç¹Þ½À´Ï´Ù.
2011/02/06