| ||||||||||
| 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 | |||||||||
为什么我的这个代码用GCC可以过,用C就说Compile Error呢?代码应该是没问题的,VS里面编译运行都没问题。// MyPojProject.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
char s[7];//初始值
int n;//幂
int res[152];//计算结果
int tmpres[152];//计算用临时变量
int decimalCount = 0;//小数位数
int numCount = 0;//数字位数, 5或6
//计算一次乘积
void MultiLongNumbers()
{
int reslen = 151;
while (res[reslen]==0)
{
reslen --;
}
for (int i = 0; i< numCount; i++)
{
for (int j = 0; j<= reslen; j++)
{
tmpres[i+j] += s[i]*res[j];
}
}
for (int i = 0; i<= numCount+reslen; i++)
{
if (tmpres[i] > 9)
{
tmpres[i+1] += tmpres[i]/10;
tmpres[i] = tmpres[i]%10;
}
res[i] = tmpres[i];
tmpres[i] = 0;
}
};
int main()
{
int tmp;
while(scanf("%s%d", s, &n)==2)
{
tmp = 0;
for (int i = 0; i<6; i++)
{
if (s[i] == '.')
{
decimalCount = 5 - i;
tmp = 1;
}
s[i] = s[i+tmp];
}
numCount = 6 - tmp;
//调整为低位下标为0
for (int i = 0; i+i < numCount; i++)
{
tmp = s[i];
s[i] = s[numCount - i - 1];
s[numCount - i - 1] = tmp;
}
for (int i = 0; i< numCount; i++)
{
s[i] -= '0';
}
for (int i = 0; i< 152; i++)
{
res[i] = 0;
tmpres[i] = 0;
}
res[0] = 1;
for (int i = 0; i < n; i++)
{
MultiLongNumbers();
}
int resBeg = 151;
int resEnd = 0;
while (res[resBeg]==0)
{
resBeg --;
}
while (res[resEnd]==0)
{
resEnd ++;
}
decimalCount *= n;//结果中小数位数
while (resBeg >= decimalCount)
{
printf("%d", res[resBeg]);
resBeg -- ;
}
if (resBeg >= resEnd)
{
printf(".");
}
while (decimalCount-1 > resBeg)
{
printf("0");
decimalCount -- ;
}
while (resBeg >= resEnd)
{
printf("%d", res[resBeg]);
resBeg -- ;
}
printf("\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator