ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   jj4st13
   ¾Æ±î ¹Ø¿¡ ÇÑ Áú¹®¿¡¼­ ¼ýÀÚ¸¦ ¹Þ¾Æ¿À´Â°Å Áú¹®ÀÔ´Ï´Ù..

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


#include <stdio.h>
#include <stdlib.h>

int read_score();
char set_grade();

int main()
{
        int total = 0, score=0, count = 0;
        int grade_count[5]={0};
        float average;
        char grade;
        FILE *fp=fopen("text.txt","r");

        if(fp == NULL){
                printf("ÆÄÀÏÀÌ ¾ø½À´Ï´Ù\n");
                return -1;
        }

        for (;;)
        {
                score=read_score(fp);
                printf("\n");

                if(score==-1)
                        break;

                else
                {
                        grade=set_grade(score,grade_count);

                        total += score;
                        count++;
                        printf("Á¡¼ö: %d\tÇÐÁ¡:%c\n\n",score,grade);

                }
        }

        if (count == 0 )
                printf("ÀÔ·Â ¾øÀ½\n");


        else
        {
                average = (float) total / count;
                printf("ÃÑÁ¡: %d\n", total);
                printf("Æò±Õ: %5.2f\n", average);
                printf("A°³¼ö:%d  B°³¼ö:%d  C°³¼ö:%d  D°³¼ö:%d  F°³¼ö:%d ",grade_count[0],grade_count[1],grade_count[2],grade_count[3],grade_count[4]);
        }
        system("pause");
        return 0;
}

int read_score(FILE *fp)
{    
        int score;

        if(fscanf(fp,"%d",&score)==EOF)
                return -1;

        printf("Á¡¼ö ÀÔ·Â (0 to 100/-1Àº ³¡): ");

        fscanf(fp,"%d",&score);

        while(score>100||score<-1)
        {
                fscanf(fp,"%d",&score);
        }

        return score;

}

char set_grade(int score, int grate_count[])
{
        int fake;
        fake=score/10;

        if(fake==10)
        {
                grate_count[0]+=1;
                return 'A';
        }
        else if(fake==9)
        {
                grate_count[1]+=1;
                return 'B';
        }
        else if(fake==8)
        {
                grate_count[2]+=1;
                return 'C';
        }
        else if(fake==7)
        {
                grate_count[3]+=1;
                return 'D';
        }
        else
        {
                grate_count[4]+=1;
                return 'F';
        }
}

¾Æ±î Áú¹®ÇÑ ÄÚµåÀε¥ ¿À·ù³ª´ÂºÎºÐÀ» ´Ù °íÃÆ½À´Ï´Ù...±×·±µ¥ Áú¹®ÀÔ´Ï´Ù...
¸®µåÇÔ¼ö¸¦ ¹Ù²Ù°í ½Í½À´Ï´Ù...

ÀÌ·¸°Ô ¹Ù²ã”f½À´Ï´Ù..

int read_score(FILE *fp)
{    
        int score;

        if(fscanf(fp,"%d",&score)==EOF)
                return -1;

        printf("Á¡¼ö ÀÔ·Â (0 to 100/-1Àº ³¡): ");

        while(1)
        {
                fscanf(fp,"%d",&score);
                if(-1<=score&&score<=100)
                        return score;
        }
}

±×·±µ¥..ÀÌ·¸°Ô ÇÏ´Ï ¾î° ´Ù ÀԷ¹ÞÁú ¸øÇÏ´õ¶ó±¸¿ä.....
text.txt¿¡ 100 90 80 70 60 -1 À» ÀúÀåÇß½À´Ï´Ù.

±×·¯¸é ´Ù ÀÔ·Â¹Þ°í  ¸ÅÀÎÇÔ¼ö¿¡¼­ -1ÀÌ ¹Ýȯ‰çÀ»¶§ Àú ·çÇÁ¿¡¼­ Å»ÃâÇØ¾ßÇϴµ¥.....
Ãâ·ÂÇØº¸´Ï...´ÙÀԷ¹ÞÁö ¸øÇϰí
90 70 À̰Š2°³¸¸ ÀÔ·Â¹Þ°í ³¡³ª´õ±º¿ä....
µµµ¥Ã¼ ¸Ó°¡ ¹®Á¦Àϰ¡¿ä?


  Hit : 3678     Date : 2011/12/05 12:13



    
prosthetics /*
Áö³­¹ø Áú¹®¿¡¼­ offset¿¡ ´ëÇØ ¼³¸íÇØ µå·È´Âµ¥
fscanf, fprintf¸¦ ¾²¸é offsetÀÌ ÀÚµ¿À¸·Î Áõ°¡Çؼ­ ´ÙÀ½ ¹®ÀÚ¸¦ °¡¸®Å²´Ù°í Çß½À´Ï´Ù.

jj4st13´ÔÀº
if(fscanf(fp,"%d",&score)==EOF) //¿©±â¼­ Çѹø
fscanf(fp,"%d",&score);//¿©±â¼­ Çѹø
Áï, 2¹ø offsetÀ» º¯°æÇÕ´Ï´Ù.

ù¹øÂ°¿¡¼­ 100À» score¿¡ ÀúÀåÇϰí offsetÀ» 90ÀÌ ÀúÀåµÈ ÁÖ¼Ò·Î ¿È±â°í
µÎ¹øÂ°¿¡¼­ 90À» score¿¡ ÀúÀåÇϰí ÇÔ¼ö¸¦ ³¡³À´Ï´Ù.
¸¶Âù°¡Áö·Î Çѹø ´õ ÇÔ¼ö¸¦ È£ÃâÇÏ°í ³ª¸é

read_score()ÇÔ¼ö¿¡¼­ ¹ÝȯÇÏ´Â °ªÀº 90°ú 70, -1»ÓÀÔ´Ï´Ù.
(¹«ÇÑ·çÇÁ µ¹»·Çߴµ¥ Á¶°Ç¹®ÀÌ ¸Â¾Æ¼­ -1Àº ¹ÝȯÇϳ׿ä.)

¾î¶µç ¾Ë¾Æ¼­ °íÄ¡¼À
*/
2011/12/05  
jj4st13 ¤¾¤¾ °¨»çÇÕ´Ï´Ù....óÀ½ if¹®¶§¹®¿¡ offset°¡ º¯°æµÇ´Ï
ÀÌ°É fseek·Î ¸ÇóÀ½À¸·Î µÇµ¹¸®¸é µÇ´Â°Å±º¿ä °¨»çÇÕ´Ï´Ù...
¸ÞÀι®¿¡ ³ÖÀ¸´Ï ¾Æ¹«·± ÀÌ»ó¾øÀÌ Àß µÇ³×¿ä
2011/12/05  
prosthetics /*
ÀÌ·¸°Ô ¹Ù²Ù¸é µÇ´Âµ¥..
¾î¶µç fseek¸¦ ¾²¼Å¼­ µÇ¼Ì´Ù´Ï ÃàÇϵ帳´Ï´Ù.
*/
int read_score(FILE *fp)
{
int score;
printf("Á¡¼ö ÀÔ·Â (0 to 100/-1Àº ³¡): ");

while(1)
{
if(fscanf(fp,"%d",&score)==EOF)
return -1;
if(-1<=score&&score<=100)
return score;
}
}
2011/12/05