[C 언어] 1부터 100까지의 모든 정수에서 9가 나오는 횟수.

2726 단어
먼저 두 가지 절차를 살펴보겠습니다.
#include <stdio.h>
int main ()
{
    int i;
    int count = 0;
    for(i=1; i<=100; i++)
    {
        if(i%10 == 9)
        {
            count++;
        }
        else if(i/10 == 9)
        {
            count++;
        }   
    }
    printf("the count is %d
"
,count); return 0; }
#include <stdio.h>
int main ()
{
    int i;
    int count = 0;
    for(i=1; i<=100; i++)
    {
        if(i%10 == 9)
        {
            count++;
        }
        if(i/10 == 9)
        {
            count++;
        }   
    }
    printf("the count is %d
"
,count); return 0; }

상기 두 절차가 어떤 차이가 있는지 진지하게 비교해 보세요.아마도 너는 곧 이 두 프로그램의 두 번째if문장 앞에else가 다르다는 것을 발견할 것이다. 틀림없다.이것이 바로 문제의 관건이다!!
만약에 두 번째if문장 앞에else가 있다면 9,19,29,39,49,59,69,79,89,90,91,92,93,94,95,96,97,98,99 중 9에서 89까지'모드10여분'컴파일러를 통해 모두 9개의 9를 검출했고 90에서 98까지'10여분'컴파일러를 통해 모두 9개의 9를 검출했다. 99는'모드10여분'컴파일러를 통해 오른쪽 9를 검출했고 마지막에 순환을 검출했다. 그러면 결과는 19개의 9가 있는데 왜 20이 실행되었을까?
99 중 하나인 9만 세었기 때문이야!이로써 두 번째if문장으로 돌아가기 전에else가 없으면 99는 처음으로'모드10을 통해 오른쪽의 9를 검출하고 이어서'10을 제외한 업체'를 통해 왼쪽의 9를 검출할 수 있기 때문에 결과는 두 번째if문장 앞에else가 있을 수 없고 그렇지 않으면 99 왼쪽의 9를 검출할 수 없다.이해했어?

좋은 웹페이지 즐겨찾기