본문 바로가기
프로그램/C언어 1000제

C언어 110제] c언어 콘서트 CHAPTER 12 Programming 2 정수의 개수, 합계, 평균 구하시오. p488

by 건티 2022. 1. 24.
728x90

출처 : 반크_세계유산 고인돌

 

참고풀이]

//Dev-C++ 5.11로 작업함.
#include <stdio.h>
#include <stdlib.h> //exit(), atoi()
#include <string.h> //strlen()

int main(void)
{
   FILE *fp1;
   char file1[100];
   char StrLine[255];
   int i,j;//반복변수 
   int c,n;//정수의 개수, 전체 자료 개수 변수 
   int Sum;//정수의 합 변수 
   int chk;//파일의 끝, 정수 여부 파악변수 

   //파일을 읽기 모드로 연다.
   if ((fp1 = fopen("numbers.txt", "r")) == NULL)
   {
      fprintf(stderr, "원본 파일 %s을 열 수 없습니다.\n", file1);
      exit(1);
   }

   //fp1에서 한 라인씩 읽어서  자료의 개수를 확인함 
   n=0;
   while (chk=fgets(StrLine,sizeof(StrLine),fp1) != NULL)
      ++n;
   fclose(fp1);

   fp1 = fopen("numbers.txt", "r");

   //정수의 개수, 합계, 평균을 구하여 출력한다.
   c=0;Sum=0;
   for(i=0;i<n;i++)
   {
      fgets(StrLine,sizeof(StrLine),fp1);
      for(chk=1,j=0;j<strlen(StrLine)-1;j++)//'\n'을 빼준다 
         if(StrLine[j] >= '0' && StrLine[j] <= '9');
         else
         {
            chk=0; break;
         }
      if(chk)
      {
         Sum+=atoi(StrLine);
         c++;
   }
}

   //결과출력 
   printf("정수들의 개수 : %d\n",c);
   printf("정수들의 합계 : %d\n",Sum);
   printf("정수들의 평균 : %.2lf\n",(double)Sum/(double)c);

   fclose(fp1);

   return 0;
}

 

 

참고풀이 결과]

 

읽어온 파일]

numbers.txt
0.00MB

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

반응형

댓글