当前位置: 代码迷 >> C语言 >> 求助,为什么运行时i会是一个好大的数?
  详细解决方案

求助,为什么运行时i会是一个好大的数?

热度:248   发布时间:2006-03-24 21:33:00.0
求助,为什么运行时i会是一个好大的数?
反数的问题:
输入一个数56,然后求反数得65
再输入一个数72,然后求反数得27
然后算65+27=92,然后再求反数得29
29就是你最终要Output的。
注:
有0的数的反数,例如450求反数为54,自动把0去掉。
例如:
Input:
36
77
Output:
41

#include <stdio.h>
#include <math.h>

int a,b,c,d,e,i,p,g,stop;
int f[10];

contract(int a)

{
for (i=1,p=10; stop!=1;i++)
{ stop=1; //停止标志
if(a>=p)
stop=0;
e=a%p;
g=p/10;
f[i]=e/g;
p=p*10;
//printf("i=%d,f[i]=%d",&i,&f[i]);
}
for (;i>1;i--)
{
c=f[i]*10^i;
//printf("f[i]f[i]=%d",&f[i]);
}
return c;
}
void main()
{
scanf("%d",&a);
scanf("%d",&b);
d=contract (a)+contract (b);
printf("d=%d",&d);
}

搜索更多相关的解决方案: 运行  

----------------解决方案--------------------------------------------------------
各位帮帮忙吧.我搞不懂为什么:(
----------------解决方案--------------------------------------------------------

请参照看看,另外&别到处乱加
[CODE]
#include <stdio.h>
#include <math.h>
int f[10];
contract(int a) /*用库函数还有些简单方法*/
{
int c=0,i=0,m;

while(a%10==0&&a!=0)
a=a/10;
while(a!=0)
{
f[i++]=a%10;
a=a/10;
}
m=--i;
for(i=0;i<=m;i++)
c+=f[i]*pow(10,m-i);
return c;
}
void main()
{
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d\n", contract ( contract(a)+contract(b) ) );
getch();
}


[/CODE]


----------------解决方案--------------------------------------------------------

#include <stdio.h>


int a,b,d,e,i,p,g;


contract(int a)

{if (a<10) e=a;
else if (a<100) {e=a/10;i=a%10;a=i*10+e;}
else if (a<1000){e=a/10;p=e/10;i=e%10;g=a%10;a=g*100+i*10+p;}
else if (a<10000){g=a%10;e=a%100;p=a%1000;d=a/10;a=g*1000+e*100+p*10+d;}
}
void main()
{
scanf("%d",&a);
scanf("%d",&b);
d=contract (a)+contract (b);
d=contract(d);
printf("d=%d\n",d);
}
对于你的算法我看不太懂,我觉得你很多步骤都是没什么意义的,可能是我水平有限,这是我在你的基础上作的修改,你编译一下,我的编译器坏了,可能有错,这种题应该用switch做比较好


----------------解决方案--------------------------------------------------------
啊,对了忘了要返回值,return a;自己加
----------------解决方案--------------------------------------------------------
ADALE 程序是对的,不过………………数字大点会累死你那么多if
----------------解决方案--------------------------------------------------------
呵呵,feng1256伯伯说得对,我会好好看你的程序,然后再作修改
----------------解决方案--------------------------------------------------------
真的很不错,果然是姜越老越辣,
----------------解决方案--------------------------------------------------------
以下是引用ADALE在2006-3-25 0:49:00的发言:
真的很不错,果然是姜越老越辣,

我是新手


----------------解决方案--------------------------------------------------------
我见你平时好像很老练的样子以为你跟knocker and Kyo 一样是。。。
不过你的头像就是让人觉得你是伯伯
----------------解决方案--------------------------------------------------------
  相关解决方案