还是错的,若输入的是负数没问题,正数就少了一位.
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{ int i; long a=0, n=0,k=1;
for (i=strlen(p)-1;i>=0;i--)
if (p[i]=='-')
a=-a;
else
{ n=p[i]-'0';
n*=k;
k*=10;
a+=n;
}
return a;
}
void main() /* 主函数 */
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
}
----------------解决方案--------------------------------------------------------
呵
9楼何止什么都会啊
我怀疑9楼一直不告诉我们微软的WindowsXP里99%的源代码是抄袭9楼作品的
9楼简直就是人类骄傲啊
----------------解决方案--------------------------------------------------------
书写习惯是要养成的,有的人没心情看书写的很乱的代码!我也不喜欢看乱的代码.(简单可以看看)
至于九楼的我想你最好做一个星期斑竹试试,看看每天阅读帮人找错是不是一个痛苦的事!
----------------解决方案--------------------------------------------------------
另外11楼,我试过楼主的程序,没有你说的问题!
----------------解决方案--------------------------------------------------------
这是他的程序
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{
int i; long a=0, n=0,k=1;
for (i=strlen(p)-1;i>0;i--)
{
n=p[i]-'0';
n*=k;
k*=10;
a+=n;
}
if (p[0]=='-') a=-a;/*他这里只考虑到p[0]=='-'的情况,如果p[0]!='-'呢*/
return a;
}
main() /* 主函数 */
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
}
----------------解决方案--------------------------------------------------------
如果p[0]!=‘-’
就执行return a;
----------------解决方案--------------------------------------------------------
哎......又是废话,
你要是不会就别回贴,
没礼貌!!!```要是觉得飞燕````的回复有问题``可以提出意见```不要这样攻击```
飞燕````知道你很累``而且很忙``每天逛很多方`````而且还有自己的事要做``
要是你不想回贴呢```就直接不回吧````你以后尽量委婉的指出一下别人的帖子那里不好吧```
```我知道你的脾气``是帮人``帮出来的```
----------------解决方案--------------------------------------------------------
书写习惯是要养成的,有的人没心情看书写的很乱的代码!我也不喜欢看乱的代码.(简单可以看看)
至于九楼的我想你最好做一个星期斑竹试试,看看每天阅读帮人找错是不是一个痛苦的事!
re! 最不喜欢就是看代码了。。。。比看acm上的论文还要痛苦
----------------解决方案--------------------------------------------------------