#16758: 拜託!!各位大大說明一下哪裡錯了(該如何改#加法就GG 。。 |||


kolagh7486 (電腦前的咖啡)

學校 : 國立臺中高級工業職業學校
編號 : 88363
來源 : [1.200.121.142]
最後登入時間 :
2022-09-24 16:06:42
a021. 大數運算 | From: [111.246.84.214] | 發表日期 : 2019-02-05 16:45

#include <iostream>

using namespace std;


int a[500], b[500], sum[500],carry;
string ch1, ch2;
char symbol;

int add(int[],int[],int[]);//加
//void sub(a[500],b[500],sum[1000]);//減
//void mul(a[500],b[500],sum[1000]);//乘
//void div(a[500],b[500],sum[1000]);//除
int show(int[]);

int main()
{
while(cin>>ch1>>ch2)//測試個符號運算功能
{
for(int i=0;i<ch1.length();i++)
a[i]=ch1[ch1.length()-1-i]-48;
for(int i=0;i<ch2.length();i++)
b[i]=ch2[ch2.length()-1-i]-48;

add(a,b,sum);
show(sum);


}
}

int show(int sum[500])
{
int post;
for(int i=499;i>=0;i--)
{
if(sum[i]!=0)
{
post=i;
break;
}
}
for(int i=post;i>=0;i--)
cout<<sum[i];

}

ps.本人覺得兩個邏輯一樣但結果卻大不相同??>>以下測資76495690 469594

int add(int a[500],int b[500],int sum[500])//加法邏輯
{

for(int i=0;i<500;i++)
{
sum[i]=a[i]+b[i]+carry;
sum[i]=sum[i]%10;
carry=sum[i]/10;



}

}
/*for(int i=0;i<500;i++)//加法邏輯
{
sum[i]=a[i]+b[i]+carry;
if(sum[i]>=10)
{
sum[i] %= 10;
carry++;
}
else{
carry=0;}
}*/

 
ZeroJudge Forum