my question in this program is in the function multiplication()Code:#include<stdio.h> #include<string.h> char r[6]; unsigned result[156]; unsigned temp[156]; int len() { int i; for(i=0;i<=156;i++) { if(result[i]!=0) break; } return 156-i; } void multiplication() { int i,j; memset(temp,0,sizeof(temp)); for(i=5;i>=1;i--) { for(j=155;j>155-len();j--) { temp[j+i-5]+=r[i]*result[j]; } } for(i=155;i>=0;i--) { if(temp[i]>=10) { temp[i-1]+=temp[i]/10; temp[i]%=10; } } for(i=0;i<156;i++) { result[i]=temp[i]; } } int main() { int n; int m; int j; int i; int endPoint=156; while(scanf("%s%d",r,&n)==2) { int bStartOutput=0; int bInteger=1; for(j=2;j>0;j--) { if(r[j]=='.') break; } m=5-j; m=m*n; for(i=(j-1);i>=0;i--) { r[i+1]=r[i]; } r[0]='0'; for(i=0;i<6;i++) { r[i]-='0'; } memset(result,0,sizeof(result)); n--; for(i=1;i<6;i++) { result[i+150]=r[i]; } while(n--) { multiplication(); } for(i=1;i<156-m;i++) { result[i-1]=result[i]; } result[156-m-1]=100; for(i=156-m;i<156;i++) { if(result[i]) { bInteger=0; break; } } if(bInteger) { for(i=0;i<156;i++) { if(bStartOutput) { if(result[i]==100) break; else printf("%d",result[i]); } else if(result[i]) { printf("%d",result[i]); bStartOutput=1; } } } else { for(i=155;i>=0;i--) { if(result[i]==0) endPoint=i; else break; } for(i=0;i<endPoint;i++) { if(bStartOutput) { if(result[i]!=100) printf("%d",result[i]); else printf("."); } else if(result[i]) { bStartOutput=1; if(result[i]!=100) printf("%d",result[i]); else printf("."); } } } } }
the line:how did that happen that the string array become integer without any conversionCode:temp[j+i-5]+=r[i]*result[j];
and how that string of characters involved in multiplication with correct value....