📄 1..txt
字号:
#include <iostream>
using namespace std;
int main()
{
int n=0,posp1=0,posp2=0,posp3=0,pos1=0,pos2=0,len1=0,len2=0,flag=0;
int nump1[105]={0},nump2[105]={0},nump3[105]={0};
cin>>n;
cin.get();
char num1[105],num2[105];
for(int i=1;i<=n;i++)
{
if(i>=2)
cin.get();
for(int j=0;j<105;j++)
{
nump1[j]=0;
nump2[j]=0;
nump3[j]=0;
}
posp1 = 0;
posp2 = 0;
posp3 = 0;
flag = 0;
cin.getline(num1,101,'\n');
cin.getline(num2,101,'\n');
len1=strlen(num1);
len2=strlen(num2);
for(int j=0;j<len1;j++)
if(num1[j] == '.')
{
pos1=j;
break;
}
for(int j=0;j<len2;j++)
if(num2[j] == '.')
{
pos2=j;
break;
}
//处理小数部分
for(int j=pos1+1;j<len1;j++)
nump3[posp3++]=num1[j] - '0';
for(int j=pos2+1;j<len2;j++)
nump2[posp2++]=num2[j] - '0';
for(int j=max(posp3,posp2)-1;j>0;j--)
{
nump3[j] += nump2[j];
if (nump3[j] >= 10)
{
nump3[j] -= 10;
nump3[j-1] += 1;
}
}
nump3[0] += nump2[0];
if (nump3[0] >= 10)
{
flag=1;
nump3[0] -= 10;
}
posp3=100;
while(nump3[posp3] == 0 && posp3>=0)
{
posp3--;
}
for(int j=0;j<105;j++)
{
nump2[j]=0;
}
//处理整数部分
posp2=0;
for(int j=pos1-1;j>=0;j--)
nump1[posp1++]=num1[j] - '0';
for(int j=pos2-1;j>=0;j--)
nump2[posp2++]=num2[j] - '0';
if(flag == 1)
nump1[0]++;
for(int j=0;j<max(posp1,posp2);j++)
{
nump1[j] += nump2[j];
if (nump1[j] >= 10)
{
nump1[j] -= 10;
nump1[j+1] += 1;
}
}
posp1=100;
while(nump1[posp1] == 0 && posp1>=0)
{
posp1--;
}
if (posp1 == -1)
cout<<"0";
else for(int j= posp1;j>=0;j--)
cout<<nump1[j];
cout<<".";
for(int j=0;j<=posp3;j++)
cout<<nump3[j];
cout<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -