인프런 커뮤니티 질문&답변
질문 있습니다.
해결된 질문
작성
·
193
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는 계속 변하지 않네요.. 왜그런가요?!
퀴즈
프로그래밍에서 반복 루프(repetition loop)를 사용하는 가장 주된 이유는 무엇일까요?
프로그램의 길이를 늘리기 위해
동일하거나 유사한 작업을 효율적으로 반복하기 위해
오류 메시지를 확인하기 위해
변수의 선언을 간소화하기 위해
답변 1
1
안녕하세요 :)
(c / 100)를 묶어서 (c / 100)를 가장 먼저 계산하면 무조건 0이 나옵니다.
(/는 몫 만 계산한다는 사실에 유의해주세요.)
그렇기에 a= a*(1+(c/100)); 는 a = a 가 되어 버리는 것입니다.
감사합니다.





