#include<stdio.h>
#include<cmath>//⑤
int main(void){
long long int A=0,B=0;
int DA=0,DB=0;
float countA=0,countB=0;
while(scanf("%lld %d %lld %d",&A,&DA,&B,&DB) != EOF){
if(0>=A&&A>=1.E10&&0>=B&&B>=1.E10) return false;//①
int PA=0,PB=0;//②
while(A!=0)//③
{
if(A%10==DA)
{
countA++;
PA += pow(10,countA-1)*DA;//④
}
A /= 10;
}
while(B!=0)
{
if(B%10==DB)
{
countB++;
PB += pow(10,countB-1)*DB;
}
B /= 10;
}
printf("%d\n",PA+PB);
}
return 0;
}
①细节开始的时候,写反了,造成无输出,按任意键返回…
还有,main函数是int型,这个return是非法的!
if(0<A&&A<1.E10&&0<B&&B<1.E10) return false;
②细节这些在黑盒测试需要重置的变量,写进里面来,不然造成下组数据被干扰
③思路判断条件A/10!=0与A!=0差在哪里?
④思路学习我的思路是,从低位往高位累加,但是这样在实际代码中,必须再判断一次PA是否存在,然后考虑要不要将DA赋值给PA,不如这种思路,高位往低位累加,不用管PA的初值!
⑤cmath是C++里的,C中使用math.h