在VC下可运行在GCC下不能运行

feigouge 2010-11-23 08:33:20
编译都通的过,但在Gcc下不能运行,程序主体是用数组处理大数相加,在Vc下可以正确运行(我是这么认为的)但在Gcc下却不行
代码如下

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;


int main()
{
SqList S[4];
int i,j,k,n,m,sum,a,b,c;
while( scanf("%d%d%d",&a,&b,&c)!=EOF )
{
for(i=0;i<4;i++)
{
S[i].elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
S[i].length=0;
S[i].listsize=LIST_INIT_SIZE;
}
if(a==0)
{
S[0].elem[0]=a;
S[0].length++;
}
for(i=0;a!=0;i++)
{
S[0].elem[i]=a%10;
S[0].length++;
a=(a-a%10)/10;
}
if(b==0)
{
S[1].elem[0]=b;
S[1].length++;
}
for(i=0;b!=0;i++)
{
S[1].elem[i]=b%10;
S[1].length++;
b=(b-b%10)/10;
}
if(c==0)
{
S[2].elem[0]=c;
S[2].length++;
}
for(i=0;c!=0;i++)
{
S[2].elem[i]=c%10;
S[2].length++;
c=(c-c%10)/10;
}

for(i=0;i<4;i++)
for(m=S[i].length;m<S[i].listsize;m++)
S[i].elem[m]=0;

j=3;
while(j<=10)
{
i=0;
while(i==j%4)
i++;
n=i;
for(k=0;k<S[n].length;k++)
{
S[j%4].elem[k]=S[n].elem[k];
S[j%4].length=S[n].length;
}
for(i=0;i<4;i++)
{
if(i!=n && i!=j%4)
{
for(k=0;k<S[i].length;k++)
{
sum=S[j%4].elem[k]+S[i].elem[k];
if(sum>=10)
{
if(S[j%4].length>=S[j%4].listsize)
{
S[j%4].elem=(int *)realloc(S[j%4].elem,sizeof(int)*(S[j%4].listsize+LISTINCREMENT));
S[j%4].listsize+=LISTINCREMENT;
for(m=S[j%4].length;m<S[j%4].listsize;i++)
S[j%4].elem[m]=0;
}

if(k+1>=S[j%4].length)
S[j%4].length++;
if(sum<20)
{
S[j%4].elem[k+1]+=1;
S[j%4].elem[k]=sum-10;
}
else
{
S[j%4].elem[k+1]+=2;
S[j%4].elem[k]=sum-20;
}
}
else
S[j%4].elem[k]=sum;
}
if(S[j%4].length<S[i].length)
S[j%4].length=S[i].length;
}
}
j++;
}
for(i=S[(j-1)%4].length-1; i>=0;i--)
printf("%d",S[(j-1)%4].elem[i]);
printf("\n");
}
return 0;
}
搞不定啊,求助
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2010-11-24
  • 打赏
  • 举报
回复
gcc报啥错?
xunxun 2010-11-24
  • 打赏
  • 举报
回复
gcc版本?
我使用4.5.2svn没有问题
sirzxj 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 c395565746c 的回复:]
在gcc不能运行。。具体是什么表现??
[/Quote]


\

using namespace std;
angel_su 2010-11-24
  • 打赏
  • 举报
回复
全写在一块不好吧,弄几个函数出来吧,这样代码逻辑也会清楚点。觉得比较重要的一点是每次elem赋值一定要比对长度,满了就要先扩充下,不然会越界操作...
「已注销」 2010-11-23
  • 打赏
  • 举报
回复
在gcc不能运行。。具体是什么表现??

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧