【发布时间】:2011-03-14 12:25:23
【问题描述】:
我编写了一个程序,可以将输入到字符串中的数字转换为整数,就像 atoi 所做的那样,但是它给出了错误的输出。
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
void main(void)
{
static int sum;
int i,x,y,z;
char string[10];
printf("Enter a string:\n");
gets(string);
x=strlen(string);
for(i=0; ;i++)
{
if(string[i]=='\0')
{
break;
}
y=pow(10,i);
z=string[x-i+1]*y;
sum+=z;
}
printf("%d",sum);
getch();
}
【问题讨论】:
-
如果您添加了一个示例,说明您期望什么以及您实际遇到的问题,将会很有帮助。
-
注意:
for(A;;B) { if (C) break; ... }可以写成for(A; !C; B) { ... }。 -
@Shin 那是我的懒惰先生 :)
-
比较惯用,打字也少,所以偷懒的解决方案确实是
for(A; !C; B)! :D -
哈哈,这让我太费神了。我发现添加 break 条件非常有用,就好像我想使用 do while 循环一样,我使用 for 循环并在完成所有操作后使用 break 条件在 for 循环中,所以它总是运行一段时间:p
标签: c