【发布时间】:2020-04-29 11:16:45
【问题描述】:
是否可以在同一个函数中运行 2 个 while 循环? 只有一个 while 循环有效。如果我删除第一个,第二个将起作用,如果我删除第二个,第一个将起作用。
#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "results.txt"
void analyseText(int character[], int i, FILE *fptr, int *sum, int a)
{
while ((i = fgetc(fptr)) != EOF)
{
if (i >= 'a' && i <= 'z')
character[(i - 'a')]++;
if (i >= 'A' && i <= 'Z')
character[(i - 'A')]++;
for (int i = 0; i < 26; i++)
{
printf("%c: %d\n", i + 'a', character[i]);
}
while (1)
{
int result = fscanf(fptr, "%d", &a);
if (result == EOF) {
break;
}
else if (result == 1) {
*sum += a;
}
else {
fscanf(fptr, "%*c");
}
}
}
}
【问题讨论】:
-
i有 2 个声明? -
你认为这与它有关吗?
-
敢问为什么
i是函数参数?只是好奇。无论如何,实际示例数据,以及对这个函数应该做什么的期望应该是您发布的问题的一部分。内部 while 循环看起来坏了。该循环只会在流错误/EOF 时下降,在后一种情况下,外部循环也将全部结束。 -
您可以嵌套任意数量的
while,只要它们的运行条件相关。 -
好的,我们可以用不同的方式编写代码但功能仍然相同吗?
标签: c