while문질문입니다.
메이
2023.04.01
(1*3)+(2*3)+(3*3)+....(i*3)=sum 을 계산하되 그 sum이 9999를 초과하지 않는 i의 최대값과 sum구하는 프로그램을 while문
으로 작성하시오.
#include stdio.h
void main()
{
int i=1,sum=0,gob;
while(sum9999)
{
int j=3;
gob = i*j;
sum = sum + gob;
i++;
}
printf(sum = %d, sum);
printf(최대값은 %d, i);
질문 내용 :
답을 구하니깐 sum이 9999를 뛰어넘고 최대값도 그수를 지나치더군여
왜 그런지 모르겠네여.. 아시는분 꼭 답변 부탁드리겠습니다.
-
레온
만약에 sum이 9998이라면 조건을 만족하고 한번 더 수행하겠죠. 그때 sum은 9999를 넘을 것입니다.
int i=1, sum=0, tmp;
while(1)
{
tmp = sum;
if( tmp 9999) break;
sum = sum + (i*3);
i++;
}