지금제가하고있는방식이맞나요...맞다면 출력이왜안되나요

rebeca970228 Reply 9 years 26 weeks ago
#include <stdio.h> #include <string.h> int main() { char a[1000]={0}, b[1000]={0}, c[1000]={0}; int n, i, j=0, k; a[0]='1'; b[0]='1'; scanf("%d", &n); if(n==1 || n==2){ printf("1"); } else{ for(i=2; i<n; i++){ j=0; c[0]='0'; while(a[j] !='\0' && b[j] !='\0' && c[j] !='\0'){ c[j]=(a[j]+b[j]-'0')%10+(c[j]-'0'); if((a[j]+b[j]-'0')/10>9){ c[j+1]='1'; } a[j]=b[j]; b[j]=c[j]; j++; } } for(k=strlen(c)-1; k>=0; k--){ printf("%c", c[k]); } } return 0; }
rebeca970228 Reply 9 years 26 weeks ago
if((a[j]+b[j]-'0')/10>0){ c[j+1]='1'; } 이부분이렇게봐주세요...
YooJaeHyo Reply 9 years 26 weeks ago
% c로 출력하려면 c[j]에'0'을 뺀상태에서 연산을 진행하면 c[j]값이 문자가 아니라 오류가나서 그런게 아닌지요 ㅎㅎ
YooJaeHyo Reply 9 years 26 weeks ago
저런식이면 '0'만빼고 더햐주질 않으니 끝없이 작아지겟네요