버그 해결을 위한 모든 질문을 던져
–2 votes
112 views
학교에서 실시하는 경진대회를 준비하고 있습니다.

연습문제를 푸는데 어려움이 있어 찾아왔습니다.

제가 1을 입력하면 1 / 2를 입력하면 1+(1+2) / 3을 입력하면 1+(1+2)+(1+2+3) 이런 식으로 되었으면 좋겠습니다.

그래서 제가 짠 소스는 이것인데 어째서 0만 나오네요.. 어디서 잘못된걸까요?

#include <stdio.h>

int main()
{
    int aa[1000] = { 0, },i,n,sum;

    aa[0] = 0;
    aa[1] = 1;
    scanf("%d", &n);
    
    for (i = 2; i <= n; i++)
    {
        for(i = 1; i<= n; i ++)
        {
            sum += i;
        }
        aa[i] = aa[i - 1] + sum;
    }
    
    printf("%d", aa[n]);

}
asked (0 point) , 112 views

1 답변

0 votes
먼저 참고자료 올려드립니다.

https://docs.microsoft.com/ko-kr/cpp/cpp/scope-visual-cpp?view=vs-2019
변수의 영역에 대한 내용입니다.

위 소스를 보면 중복 for문을 작성하셨는데
각 for문의 조건변수가 i로 동일합니다.
어떤 트릭을 쓰려하셨는지는 알 수 없으나
절대 올바른 결과가 도출될 수 없습니다.(바깥 for문은 무시됩니다.)

int outputValue = n;

for(int i=0; i<=inputValue; ++i)
{
    for(int j=0; j<=i; ++j)
    {
        outputValue += j;
    }
}

printf("%d", outputValue);

로도 충분해보입니다.
answered (9 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

409 질문
541 answers
553 댓글
21,783 users