程序可以运行,但就是 缘分那里算不对值,结果老是负好几万
#include
int main()
{
int a,b,c,d,e,f;
printf("输入第一个生日");
scanf("%d",&a);
printf("输入第二个生日");
scanf("%d",&b);
c=0;
while(a>0)
{
c+=(a%10);
a/=10;
}
while(b>0)
{
d+=(b%10);
b/=10;
}
e=c+d;
while(e>=10)
{
f=e;
e=0;
while(f>0)
{
e+=(f%10);
f/=10;
}
}
printf("缘分=%d\n",e);
return 0;
}
怎么改
我把你的程序用Java实现了一下发现运行结果就是3,说明不是算法的问题。
可能是变量初始化的问题,你既然c=0了,那么再把d=0初始化一下吧。
ab是输入不用管,ef都有赋值操作也没事。
所以把d初始化为0即可。
。。在这又问一遍,那看来我刚才回复的是对的,因为你变量d没赋值。。
d赋初始值为0即可。
d=0;
while(b>0)
{
d+=(b%10);
b/=10;
}
说明你和那个女生的缘分就是负好几万(就是没有缘分) 嗯 就是这样
int GetyuanfenValue(int nBirthdayA,int nBirthdayB);
void main()
{
int nBirthdayA,nBirthdayB;
printf("输入第一个生日");
scanf("%d",&nBirthdayA);
printf("输入第二个生日");
scanf("%d",&nBirthdayB);
int nValue = GetyuanfenValue(nBirthdayA,nBirthdayB);
printf("缘分值%d",nValue);
system("pause");
}
int GetyuanfenValue(int nBirthdayA,int nBirthdayB)
{
int nValue=0;
int nTemp=0;
int nyushu=0;
nTemp = nBirthdayA;
while(nTemp>10)
{
nyushu = nTemp%10;
nTemp=nTemp/10;
nValue+=nyushu;
printf("(%d)--(%d)--(%d)\n",nyushu,nTemp,nValue);
}
if(nTemp>0)
{
nValue+=nTemp;
printf("(%d)--(%d)--(%d)\n",nTemp,nTemp,nValue);
}
nTemp = nBirthdayB ;
while(nTemp>10)
{
nyushu = nTemp%10;
nTemp=nTemp/10;
nValue+=nyushu;
printf("(%d)--(%d)--(%d)\n",nyushu,nTemp,nValue);
}
if(nTemp>0)
{
nValue+=nTemp;
printf("(%d)--(%d)--(%d)\n",nTemp,nTemp,nValue);
}
printf("------------------------------\n");
while(nValue>10)
{
nTemp = nyushu =0;
nTemp = nValue;
nValue =0;
while(nTemp>10)
{
nyushu = nTemp%10;
nTemp=nTemp/10;
nValue+=nyushu;
printf("(%d)--(%d)--(%d)\n",nyushu,nTemp,nValue);
}
if(nTemp>0)
{
nValue+=nTemp;
printf("(%d)--(%d)--(%d)\n",nTemp,nTemp,nValue);
}
printf("------------------------------\n");
}
return nValue;
}