c语言int numadd是什么,课程设计题目:超长整数处理

匿名用户

13级

2010-09-07 回答

一下程序可以相加128位数字字符.

#include

#include

#include

int getSize(const char *const arr); //get the length of array

void binaryHugeNumAdd( char *first, char *second, char *result);

const unsigned int SIZE=128; //控制数字长度

void printResult(char *result);

int main(void)

{

char *first=(char *)malloc(SIZE);

char *second=(char *)malloc(SIZE);

char *result=(char *)malloc(SIZE+1);

int i=0;

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

gets(first);

fflush(stdin);

printf("输入第二个数:");

gets(second);

fflush(stdin);

binaryHugeNumAdd(first,second,result);

printResult(result);

free(first);

free(second);

free(result);

return 0;

}

int getSize(const char *const arr)

{

unsigned int length=0;

for(;arr[length]!='\0';length++) ;

return length;

}

void binaryHugeNumAdd( char *first, char *second, char *resultPtr)

{

char *tempPtr=NULL;

char *result=NULL;

short int temp=0,carry=0; //进位

short int firstL=0,secondL=0,tempL=0;

short int fl=0,sl=0;

int i=0,j=0;

firstL=getSize(first);

secondL=getSize(second);

//printf("\nfirstL=%d \nsecond=%d\n",firstL,secondL);

//printf("\nfirst=%s \nsecond=%s\n",first,second);

if(firstL

{

tempL=secondL;

secondL=firstL;

firstL=tempL;

tempPtr=second;

second=first;

first=tempPtr;

}

fl=firstL; //greater

sl=secondL; //less

result=(char *)malloc(firstL+2);

for( i=0;i

result[i]='0';

result[firstL+1]='\0';

//for( i=0;result[i]!='\0';i++)

//printf("%2c",result[i]);

//printf("\nfirstL=%d \nsecondL=%d\n",firstL,secondL);

//printf("\nfirst=%s \nsecond=%s\n",first,second);

while(firstL-1>=0)

{

if(secondL-1>=0)

temp=(first[firstL-1]-'0')+(second[secondL-1]-'0')+carry;

else

temp=(first[firstL-1]-

追问:

printf("输入第一个数:");gets(first);fflush(stdin);printf("输入第二个数:");

为什么输入两个数?

我们学C语言很浅,能中文解释下是什么思路算的吗?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值