입력 받는 값을 n으로 정한다.

그래놓고는 출력값을 n으로 정했다.

그렇기 때문에 에러가 뜬다.

 

출력값을 i 로 바꿔주었다.

for문 안에서 정의했던 i 를 맨 처음으로 가져와 선언해준다. ( for 문에서 정의할 경우 for문에서만 사용할 수 있는 변수이다. )

출력값을 i 로 바꾸고 나서 작성했던 코드이다.

#include <stdio.h>
int main() {
	int n, i;
	scanf("%d", &n);
	for (i = 0; i <= n; i++) {
		 i = i + i;
	}
	printf("%d", i);
	return 0;
}

이렇게 하니까 자꾸 3을 넣으면 출력값이 6이어야 하는데 7이 나왔다.

아마도 i는 계속 증가하는 값인데 i를 계속 i+i 값으로 대입해줘서 그런 것 같다.

그래서 새로운 변수 a를 선언해주고 그 값을 출력했다.

#include <stdio.h>
int main() {
	int n, a=0;
	scanf("%d", &n);
	for (int i = 0; i <= n; i++) {
		 a = a + i;
	}
	printf("%d", a);
	return 0;
}

1. for문 안 변수 선언은 for문 안에서만 사용한다는 사실을 잊지 말자.

절대 절대 잊지 말자.

복사했습니다!