• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

질문 있습니다.

22.02.15 13:42 작성 조회수 133

0

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a, b, c; printf("Input seed money : "); scanf("%d", &a); printf("Input target money : "); scanf("%d", &b); printf("Input annual interest (%%) : "); scanf("%d", &c); int year = 0; while (a < b) { a = a + a * c / 100; year++; printf("%d년 : %d원\n", year, a); } }
제가 작성했던 코드는 이러한데요
 
중간 식에서 a = a + a * c / 100; 을
a= a*(1+(c/100));로 작성하니까 숫자가 더해지지가 않던데 왜그런가요?ㅠㅠ
곱셈 나눗셈 연산자 모두 잘 썼고 괄호로 순서만 정해줬는데 a는 계속 변하지 않네요.. 왜그런가요?!

답변 1

답변을 작성해보세요.

1

강민철님의 프로필

강민철

2022.02.15

안녕하세요 :)

 

(c / 100)를 묶어서 (c / 100)를 가장 먼저 계산하면 무조건 0이 나옵니다.

(/는 몫 만 계산한다는 사실에 유의해주세요.)

 

그렇기에 a= a*(1+(c/100)); 는 a = a 가 되어 버리는 것입니다.

 

감사합니다.