작성
·
184
0
main 코드는 정답에 있는 그대로 작성하고 digit_sum만 제가 작성한것으로 돌렸는데 에러는 발생하지 않지만 실행이 안됩니다(print가 아예 안됩니다ㅠ)
int digit_sum(int x){
int n, sum=0;
for(;x>10;x/10){
n = x%10;
sum += n;
}
sum += x%10;
return sum;
}
어떤것에 문제가 생긴건가요?
제가 의심되는 부분은 for문 (;;) 안에서 변화식을 x/10으로 작성한 부분이 걸립니다. 구글링으로 본 다른 코드에서는 for문에서 선언한 변수를 제어하는 부분이라고 i++과 비슷한 형태로만 작성되었더군요. 저는 단순히 for(반복문 돌리기전 초기 실행 ; 조건식 ; 1회 반복 후 실행) 으로 생각하고 작성했는데 혹시 for(;;)에서 작성할때 유의사항이 있나요?
다음은 전체 코드입니다.
#include <iostream>
using namespace std;
int digit_sum(int);
int main(){
freopen("input.txt", "rt", stdin);
int n, num, i, sum, max=-2147000000, res;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &num);
sum=digit_sum(num);
if(sum>max){
max=sum;
res=num;
}
else if(sum==max){
if(num>res) res=num;
}
}
printf("%d\n",res);
return 0;
}
int digit_sum(int x){
int n, sum=0;
for(;x>10;x/10){
n = x%10;
sum += n;
}
sum += x%10;
return sum;
}