ÇÁ·Î±×·¡¹Ö

 3200, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   good3951
   C¾ð¾î µµ¿òÁ»ÁÖ¼¼¿ä. Call by address

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


¾È³çÇϼ¼¿ä. C¾ð¾î ÇÁ·Î±×·¥¿¡¼­ Call by address¸¦ Ãß°¡Çϰí½ÍÀºµ¥, Æ÷ÀÎÅÍÀÇ ´ëÇÑ °³³äÀ» ¾Æ¹«¸®ºÁµµ ÀÌÇØ¸¦ ¸øÇϰڽÀ´Ï´Ù.

¼ºÀûÇ¥ ÇÁ·Î±×·¥Àä. ¸ÞÀÎÇÔ¼ö³»ÀÇ º¯¼ö·ÎÇØ¼­ Ç϶ó´Âµ¥; µµ´ëü ¹«½¼¸»ÀÎÁö ¸ð¸£°Ú½À´Ï´Ù.

»õ³»±âÀε¥¤Ð µµ¿ÍÁÖ¼¼¿ä. ºÎʵ右´Ï´Ù. ¾î¶²½ÄÀ¸·Î call by address¸¦ Ãß°¡Çϸé ÁÁÀ»±î¿ä¤Ì¤Ì?

#include<stdio.h>
#include <string.h>

struct student
{
  char name[5];
  int kor;
       int eng;
  int mat;
  int total;
      float average;
  int rank;
};

void main()
{
    struct student arr[100];
int i, num;

printf("¸î¸íÀÇ ¼ºÀûÀ» ±¸ÇϰڽÀ´Ï±î?");
      scanf("%d", &num);

printf("¼ºÀûÀ» ÀÔ·ÂÇϼ¼¿ä.\n");
for(i=0; i<num; i++)
{

  printf("%d¹ø ÇлýÀÇ À̸§, ±¹¾î, ¿µ¾î, ¼öÇÐ Á¡¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : ", i+1);
  scanf("%s %d %d %d", &arr[i].name, &arr[i].kor, &arr[i].eng, &arr[i].mat);
  arr[i].total = arr[i].kor + arr[i].eng + arr[i].mat;
  arr[i].average = arr[i].total/3;

    }

    printf("ÇлýµéÀÇ ¼ºÀûÀ» Ãâ·ÂÇÕ´Ï´Ù.\n");
    printf("¼ø¹ø\tÀ̸§\t±¹¾î\t¿µ¾î\t¼öÇÐ\tÃÑÁ¡\tÆò±Õ\t¼øÀ§\n");

     for(i=0; i<num; i++)
  {
   printf("%3d\t%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",i+1, arr[i].name, arr[i].kor, arr[i].eng, arr[i].mat, arr[i].total, arr[i].average, arr[i].rank);
  }
}

  Hit : 4846     Date : 2016/06/09 07:41



    
zldejs22 * ÀÌ ±ÛÀÌ µµ¿òÀÌ µÇ¼ÌÀ¸¸é ÇÕ´Ï´Ù :)

* ¾Õ¼­, main ÇÔ¼ö ³»¿¡¼­ ¸ðµç ÇÁ·Î±×·¥ÀÇ µ¿ÀÛÀ» ±¸ÇöÇϼ̴ٴ °¡Á¤¿¡´Â Æ÷ÀÎÅ͸¦ ¾µ ÀÌÀ¯°¡ ¾ø½À´Ï´Ù.
* ÀÏ´Ü, mainÇÔ¼ö¸¦ ±â¹ÝÀ¸·Î, (1) ¸î¸íÀÇ ¼ºÀûÀ» ±¸ÇÏ´ÂÁö? ¸¦ ÀԷ¹޴ ÇÔ¼ö
(2) ¼ºÀûÀ» »ç¿ëÀÚ¿¡°Ô ÀԷ¹޴ ÇÔ¼ö

* Å©°Ô ÀÌ·¸°Ô 2°³·Î ³ª´µ¾î ÇÔ¼ö(¿ªÇÒÀ» ÇÔ¼ö·Î ³ª´«´ÙÀ½¿¡) ¸Å°³º¯¼öÀÇ Àü´Þ¹æ¹ýÀ» Æ÷ÀÎÅÍ(ÁÖ¼Ò)·Î ÇÏ¿© ÇÔ¼ö°¡ ³¡³ª´õ¶óµµ(Áö¿ªº¯¼öÀÇ ¼Ò¸ê½ÃÁ¡) mainÇÔ¼ö ³»ÀÇ Áö¿ªº¯¼ö¿¡ °ªÀÌ Àü´ÞµÇ°Ô ÇØ¾ßÇÕ´Ï´Ù.
2016/07/15  
zldejs22 ÇÔ¼ö, Æ÷ÀÎÅÍ¿¡ ´ëÇÑ °øºÎ°¡ ¹Ýµå½ÃÇÊ¿äÇÑ ºÎºÐÀÔ´Ï´Ù.(È­ÀÌÆÃ!) 2016/07/15  
menial struct student arr[100]; --> struct student *arr[100];

scanf("%s %d %d %d", &arr[i]->name, &arr[i]->kor, &arr[i]->eng, &arr[i]->mat);
arr[i]->total = arr[i]->kor + arr[i]->eng + arr[i]->mat;
arr[i]->average = arr[i]->total/3;

printf("%3d\t%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",i+1, arr[i]->name, arr[i]->kor, arr[i]->eng, arr[i]->mat, arr[i]->total, arr[i]->average, arr[i]->rank);


2018/11/21