C for和while循环随机重复它们自己

C for和while循环随机重复它们自己,c,C,我有一个程序,可以将文本文件中的数字(而不是数字!)相加。 它有点像: (我迭代字符串) char str[]=“一些数字为20001、20002、20003的随机数据”; 整数计数=4//数字的长度如4 而(计数>-1) { num+=(str[i-count]-'0')*(int)pow(10,count); 计数-=1; printf(“%i\n”,计数); 如果(计数

我有一个程序,可以将文本文件中的数字(而不是数字!)相加。
它有点像:
(我迭代字符串)

char str[]=“一些数字为20001、20002、20003的随机数据”;
整数计数=4//数字的长度如4
而(计数>-1)
{
num+=(str[i-count]-'0')*(int)pow(10,count);
计数-=1;
printf(“%i\n”,计数);
如果(计数<0)
打破
}
运行6次
计数=4,3,2,1,0,0

为了检查我是否愚蠢,我添加了printf语句,它实际上说count是-1,它仍然会重复一次,但只重复一次,而不是每次都重复。大约50%(不是交替的)。
首先我有一个循环。。。不起作用。
然后我把count改为count-=1。。。同样的事情。
然后我添加了if语句。。。也不行
如果您想阅读整个代码:
(部分是德语,因为我来自那里,任务要求我这样写)

Glhf

您忘记初始化
计数

int count; // defined, but not initialized
while(count > -1)   // undefined behaviour here; accessing an uninitialized value
这应该起作用:

int count = 5;
while(count > -1) ...

int计数您需要对此进行初始化。Ex
int计数=0当循环开始时,您认为
count
的值是多少?粘贴箱中的代码与您在那里发布的代码非常不同。您应该发布代码的相关部分(事实上,
count
已初始化)。请从原始代码开始,删除/替换不感兴趣的部分,直到您有一个能够重现问题的最小程序,最好是使用硬编码输入数据。顺便说一句:您可以使用正则表达式来捕获字符串中的数字,然后转换为int,而不是(char c='A';c='A')&&(str[i])的
for(char c='A';c='A')&(str[i]您可以使用正则表达式来捕获字符串中的数字,然后将其转换为int。我很容易对其进行了初始化。这只是一个在程序中较早进行初始化的示例,出于简单的原因,我没有显示它。这就是我添加注释“eg.4”的原因.你可以在pastebin@FlorianBecker:A需要在问题本身的主体中包含最小复制者,而不仅仅是通过引用外部站点。部分想法是,在尝试最小化代码时,您可能会发现您的问题。现在我编辑了它。现在看到我的问题了吗?我只看到您使用了一个变量
i
,其中代码没有显示它是如何初始化的。也许我应该发布整个代码,我想。。。
int count = 5;
while(count > -1) ...