怎样用c语言实现大整数运算除法?无错完整版,谢谢
发布网友
发布时间:2022-05-13 12:48
我来回答
共2个回答
热心网友
时间:2023-10-09 22:45
#include<stdlib.h>
typedef struct veryLong
{
int d;
struct veryLong *next;
} longNumber;
void Display(longNumber *h);
void CharToInt(char *sn,longNumber **h);
void Add(longNumber *h1, longNumber *h2, longNumber **h3);
void main()
{
char sn[1000];
longNumber *h1=NULL,*h2=NULL,*h3=NULL;
printf("Number1:"); scanf("%s",sn);
CharToInt(sn,&h1);
// Display(h1);
printf("Number2:"); scanf("%s",sn);
CharToInt(sn,&h2);
// Display(h2);
Add(h1,h2,&h3);
Display(h3);
}
void Add(longNumber *h1, longNumber *h2, longNumber **h3)
{
int n,n1,n2,a,b=0;
longNumber *ln;
while(h1!=NULL||h2!=NULL||b!=0)
{
if(h1==NULL)
n1=0;
else
{
n1=h1->d;
h1=h1->next;
}
if(h2==NULL)
n2=0;
else
{
n2=h2->d;
h2=h2->next;
}
n=n1+n2+b;
a=n%10;
ln=(longNumber *)malloc(sizeof(longNumber));
ln->d=a;
ln->next=*h3;
*h3=ln;
b=n/10;
}
printf("\n");
}
void CharToInt(char *sn,longNumber **h)
{
int i;
longNumber *ln;
for(i=0;i<strlen(sn);i++)
{
ln=(longNumber *)malloc(sizeof(longNumber));
ln->d=sn[i]-48;
ln->next=*h;
*h=ln;
}
}
void Display(longNumber *h)
{
printf("结果:");
while(h!=NULL)
{
printf("%d",h->d);
h=h->next;
}
printf("\n");
}
这个应该可以的。
热心网友
时间:2023-10-09 22:45
转换成浮点数,运算浮点数。四舍五入,保留整数部分