 
        acm 南阳理工 74题怎么做啊
#include <iostream>
using namespace std;
int main()
{
 int i;
 char a[3], b[3];
 int c[3], d[3];
 while((cin>>a>>b) && ((a[0] - '0')||(b[0] - '0')))
 {
 int count, d;
 count = 0;
 d = 0;
 for(i = 0;i<3; i++)
 {
 c[i] = a[i] - '0';
 d[i] = b[i] - '0';
 }
 for(i = 2;i>=0; i--)
 {
 if((c[i] + d[i] + d)/10 == 1)
 {count ++ ; d ++ ;}
 }
 cout<<count<<endl;
 }
 return 0;
}
为什么我的不对?
假设你上面是对的
for(i = 2;i>=0; i--)//这个地方也不对,因为在第三位的时候d会等于2然后两边相加只要等于8就会被进位,d不应该这样加
{
  if((c[i] + d[i] + d)/10 == 1)
  {count ++ ; d ++ ;}
if((c[i]+d[i]+(count>0?1:0))>10){count++;}这样也不对,第一位进位了.第二位没进第三位等于9时也会被算成进位
if((c[i]+d[i]+flag)>10){count++;flag=1}else{flag=0}//这样应该就没问题了``
}
c[1]+d[1]