为什么只循环一次

mfgok 2004-11-12 06:46:51
aoti函数
int atoz (char *p)
{
int i=1,sum=0,a;
do
{
if (*p>='0'&&*p<='9')
{
a=(*p-48)*i;
sum=sum+a;
i=i*10;p++;
}
else
exit(0);
return(sum);
} while (*p!='\0');
}
main ()
{
char a[100];
gets(a);
printf("%d",atoz(a));
getch ();
}
...全文
67 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfgok 2004-11-12
  • 打赏
  • 举报
回复
开始指针应指向\0前面那个字节
不过不应只循环一次呀
wuqizhi 2004-11-12
  • 打赏
  • 举报
回复
return(sum);位置放错了;
应该在
while (*p!='\0'); 后面
tenvin1222 2004-11-12
  • 打赏
  • 举报
回复
当然了,return();要放在循环的外面!

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧