我又來寫了。。。。。。
源碼:
#include<stdio.h>
#include<string.h>
int a[1000]={0},b[1000]={0};
int main(void)
{
char s1[1000],s2[1000]; //設定2個字符串s1,s2
int l1=0,l2=0,l,i;
scanf("%s",s1);
scanf("%s",s2); //輸入char字符串s1的值
l1=strlen(s1); //將s1的長度的值賦給l1
l2=strlen(s2); //將s1的長度的值賦給l2
for(i=0;i<=l1-1;i++) //for_把不能計算的字符串s1賦給數組計算
{
a[l1-1-i]=s1[i]-'0';
}
for(i=0;i<=l2-1;i++) //for_把不能計算的字符串s2賦給數組計算
{
b[l2-1-i]=s1[i]-'0';
}
if(l1>l2) //判斷字符串長度,並對應比對大小
{
l=l1;
}
else
{
l=l2;
}
for(i=0;i<=l-1;i++) //由for循環算出數組a[i]與a[i]和並賦予給a[i]
{
a[i]=a[i]+b[i];
if(a[i]>=10) //判斷進位條件並對位相加
{
a[i+1]=a[i+1]+1;
a[i]=a[i]-10;
}
}
if(a[l]!=0) //確定首位是否進位
{
l++; //為後面程序變化數組位置鋪墊
}
for(i=l-1;i>=0;i--) //倒敘輸出把原本的反過來
{
printf("%d",a[i]);
}
return 0;
}
作者評語:
這次的高精度的計算器是一個無限加法,不論多大,都可以一次加起來。經過之前的反饋,我更正了字體打彩太亮的缺點,這次由於博客的復制鏈接卡段所以可能會造成復制的代碼不可使用,源代碼c源文件將在1-3日內更新!
有錯請留言評論,有錯請指出。
隨即呈上!
By He_He _S
小組 @成都七中高新OI2015
2016/7/6 張呵呵於18:34時更改 |第一次|
2016/7/6 張呵呵於20:44時更改 |第二次|
本目將於1-3日內更新