Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:为什么我的这个代码用GCC可以过,用C就说Compile Error呢?代码应该是没问题的,VS里面编译运行都没问题。

Posted by BillPOJ2016 at 2016-09-04 00:23:32 on Problem 1001
In Reply To:为什么我的这个代码用GCC可以过,用C就说Compile Error呢?代码应该是没问题的,VS里面编译运行都没问题。 Posted by:cppforever at 2014-04-15 00:52:49
> // 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;
> }
void MultiLongNumbers()
{
  ...
  for (int i = 0; i<= numCount+reslen; i++)
  {...}
  for (int i = 0; i<= numCount+reslen; i++)
  {...}
}

void main() { similar things: define all vavibles before statements }


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator