| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么这程序在VC上可以编译通过且答案正确,而在POJ上却Compile Error?请牛人帮忙!#define N 1000
#include<stdio.h>
#include<string.h>
int main(){
char str[7];
int n=0;
char aResult[N];
int i,j,k;
char Cpystr[7];
int mulp1[N]={0},mulp2[N]={0},digitstr[N]={0};
int len=0;
int count=0,count1=0;
aResult[N-1]='\0';
while(scanf("%s%d",str,&n)!=EOF){
memset(aResult,'0',sizeof(aResult)-1);
memset(Cpystr,'0',sizeof(Cpystr)-1);
memset(mulp1,0,sizeof(mulp1)-1);
memset(mulp2,0,sizeof(mulp2)-1);
memset(digitstr,0,sizeof(digitstr)-1);
bool beffect=false;
count=0;
for(i=0;i<6;i++){
if(beffect&&str[i]!='.')
Cpystr[count++]=str[i];
else if(str[i]>'0'){
Cpystr[count++]=str[i];
beffect=true;
}
}
for(i=count-1,j=0;i>=0;i--,j++)
digitstr[j]=Cpystr[i]-'0';
i=0;
while(str[i++]!='.');
len=n*(6-i);
for(i=0;i<count;i++)
mulp1[i]=digitstr[i];
count1=count;
for(i=0;i<n-1;i++){
for(j=0;j<count;j++)
for(k=0;k<count1;k++)
mulp2[j+k]+=digitstr[j]*mulp1[k];
count1=count1+count;
for(j=0;j<=count1;j++)
if(mulp2[j]>=10){
mulp2[j+1]+=mulp2[j]/10;
mulp2[j]=mulp2[j]%10;
}
for(j=0;j<=count1;j++)
mulp1[j]=mulp2[j];
memset(mulp2,0,sizeof(mulp2)-1);
}
bool startcpy=false;
for(j=N-2,k=0;j>=0&&k<N;k++){
if(len>=0) len--;
if(len==-1&&startcpy==true){
aResult[j--]='.';
k--;
len=-2;
continue;
}
if(startcpy==true||len==-1)
aResult[j--]=mulp1[k]+'0';
else if(mulp1[k]>0){
aResult[j--]=mulp1[k]+'0';
startcpy=true;
}
}
j=0;
while(aResult[j++]!='.')
if(aResult[j-1]>'0') break;
puts(aResult+j-1);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator