질문드려요.

dvwn의 이미지

x와 n을 입력받아 x의 n승을 계산하는 프로그램을 작성하려고 하는데요...
밑에 작성한 코드를 가지고 계산하면, "~의 0승은 ~입니다."라고 뜹니다.
왜 자꾸 입력받은 n승이 0승이라고 표현돼 출력되는 건가요?

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
 
int main(void)
{
	int x, n, answer;
 
	answer = 1;
 
 
	printf("정수 x의 크기를 입력하세요. :\n");
	scanf("%d", &x);
	printf("정수 n(승)의 크기를 입력하세요. :\n");
	scanf("%d", &n);
 
	do
	{
		answer *= x;
		--n;		
	} while ( n !=0 );
 
	printf("%d의 %d승은 %d입니다.", x, n, answer);
 
	return 0;
}

xtiinhs의 이미지

	do
	{
		answer *= x;
		--n;		
	} while ( n !=0 );

저 루프를 다 돌고 나면 n이 얼마가 될까요? --n이 계속 실행되는데 원래 입력받은 n 값은 남지 않겠죠. 제대로 표시하려면 별도의 루프 카운터를 선언하면 됩니다.