c语言error ld returned,[Error] ld returned 1的错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include

#include

#define MAX 101

#define N 1000

#define M 250000

/*函数功能:利用字符串实现超长数加减法运算 */

void jianfa(int a[],int b[],int f);

int lena,lenb,da=1,db=1; /* 把lena,lenb设为全局变量,lena纪录第一个超长型数组的位数,lenb纪录第二个超长型数组的位数*/

char b1[MAX], b2[MAX]; /*纪录需要计算的两个超长型数据 */

void input(int a1[],int a2[]) /*函数input为输入函数,用来纪录两个待计算的超型数据,以数组首地址为参数.以实现返回两个超长型数据*/

{

FILE *fp1;

if((fp1=fopen("xxx.txt","a+"))==NULL)

{ printf("\n cannot creat!");

exit(0);

}

int i,fa=1,fb=1;

printf("请输入第一个数:\n");

scanf ( "%s", b1);

fputs(b1,fp1);

fputs(" , ",fp1);

printf("请输入第二个数:\n"); /*输入两个超长型数据*/

scanf("%s",b2);

fputs(b2,fp1);

lena = strlen( b1 ); /*lena纪录b1的位数*/

lenb = strlen( b2 ); /*lenb纪录b2的位数*/

if(b1[0]=='-') { lena--; da=-1;fa=0;} /*判断数组的符号*/

if(b2[0]=='-') { lenb--; db=-1;fb=0;}

for (i=0; i

for (i=0; i

}

void jiafa(int a[],int b[],int f) /*超长型数据加法运算 */

{

FILE *fp1;

int i,c[MAX+1]={0},s;

if((fp1=fopen("xxx.txt","a+"))==NULL)

{ printf("\n cannot creat!");

exit(0);

}

if(da*db>0||f)

{

if(lena>lenb) s=lena;

else s=lenb; /*用s纪录结果的最大位数*/

for(i=0;i

{

c[i]=a[i]+b[i]+c[i];

c[i+1]=(int)c[i]/10; /*c[i+1]代表进位*/

c[i]=(int)c[i]%10; /*超长数加法运算过程*/

}

if(c[s]) s++; /*判断最后结果的位数*/

fputs("\n两者之和:\n",fp1);

if(da<0&&f||da<0) {printf("-");fputc('-',fp1);}

for(i=s-1;i>=0;i--)

{printf("%d",c[i]); fprintf(fp1,"%d",c[i]);} /*输出结果*/

}

else jianfa(a,b,1);

}

void jianfa(int a[],int b[],int f) /*超长数减法运算*/

{

FILE *fp1;

int i,u=0,c[MAX+1]={0},s;

if((fp1=fopen("xxx.txt","a+"))==NULL)

{ printf("\n cannot creat!");

exit(0);

}

fputs("\n两者之差:\n",fp1);

if(da*db>0||f)

{

if(lena>lenb) s=lena;

else /*用s纪录结果的最大位数*/

{ s=lenb;

for(i=s;a[i]<=b[i]&&i>=0;i--)

if(a[i]

}

if(!u) /*超长数减法运算过程*/

for(i=0;i

{

if(a[i]

{ a[i+1]--;

a[i]+=10;

}

c[i]=a[i]-b[i];

}

else /*当a

for(i=0;i

{

if(b[i]

{ b[i+1]--;

b[i]+=10;

}

c[i]=b[i]-a[i];

}

while(!c[s-1]&&s>1) s--; /*判断最后结果的位数*/

if(f&&(da>0&&u||da<0&&!u)||da>0&&(db>0&&u||u&&!f)) {printf("-");fputc('-',fp1);}

if(da<0&&db<0&&!u) {printf("-");fputc('-',fp1);} /*如果u为真是输出负号*/

for(i=s-1;i>=0;i--) {printf("%d",c[i]);fprintf(fp1,"%d",c[i]);}

}

else jiafa(a,b,1);

}

找不到哪里错了。。。

4362052c2cc92886ced1b5518d267bd1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值