안녕하세요. 10진법에서 진법을 바꾸고 각 자리의 수를 합하는 코드입니다. 오류가 있습니다.
큰나래
Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233#includestdio.h#includemath.hinti,input,input2,cipher=3,number;inta[4],sum=0;intsumfunc(intinput,intnumber){//number만큼의수로진법을바꿉니다.input은10진법으로받은숫자입니다.intj=0;input2=input;for(i=input;i=0;i/=10){a[j]=input2/(int)pow((double)number,(double)cipher);input2=input2%(int)pow((double)number,(double)cipher--);sum=a[j]+sum;//여기서각자리의수를합합니다.j++;printf(%d\n,sum);}returnsum;}intmain(){scanf(%d,&input);sumfunc(input,16);//16진법일때각자리의합printf(answeris%d,sum);//return을못받는건지..오류가납니다.sumfunc(input,12);//12진법일때각자라의합printf(answeris%d,sum);return0;}
오류가 생겨나는 이유를 모르겠습니다.
미리 감사합니다.
-
옆집언니야
감사합니다 오류 없앴어요 ㅎ
-
해련
코드 설계를 다시 해보시는게 좋을 거 같아요 전역변수를 최소한으로 줄이셔서요!
함수 실행시 마다 전에 남아있던 값과 줄어든 값으로 인해 제대로 실행이 안될거 같아요!