【发布时间】:2015-07-11 15:57:39
【问题描述】:
为什么这个哨兵控制循环不起作用?
我应该能够输入任意数量的名称,当我输入-1 时,它应该会终止。
有人能指出正确的方向吗?
#include <stdio.h>
#include <string.h>
int main()
{
char namedata[50];
int n, count = 0, names = 1;
while (names > 0)
{
printf("Enter family member name:\n");
scanf("%s", &names);
printf("name:");
puts(namedata);
if (names > 0)
{
namedata[count] = names;
count = count + 1;
}
}
if (strcmp(names, "crystal") == 0)
{
printf("crsytal is cool");
}
return 0;
}
【问题讨论】:
-
scanf("%s", &names);是错误的。names是int。 -
您将
names变量用作数字,有时用作字符,有时用作字符串。 -
我可以指导您使用调试器吗?