这是一个家庭作业问题,应该打印"冲洗和重复" n次循环的洗发水说明,如果n超出0-4的范围,则出现错误。
问题: 我发现我做了一个无限循环,但我没想到我做过。我很困惑如何通过一些测试来完成所有这些。
#include <stdio.h>
/* Your solution goes here */
void PrintShampooInstructions(int numCycles) {
int N = 1.0;
while ((numCycles > 1 ) && (numCycles < 4)) {
printf ("%d:Lather and rinse.\n", N);
++N;
}
if (numCycles < 1) {
printf ("Too few.\n");
return;
} else
if (numCycles > 4) {
printf ("Too many.\n");
return;
} else {
printf ("Done.\n");
return;
}
}
int main(void) {
PrintShampooInstructions(2);
return;
}
答案 0 :(得分:1)
您的循环条件是常量,因此循环不会被执行或者它会一直执行。更改为使用循环的代码是可接受的循环数:
#include <stdio.h>
void PrintShampooInstructions(int numCycles) {
if (numCycles < 1) {
printf("Too few.\n");
return;
} else
if (numCycles > 4) {
printf("Too many.\n");
return;
} else {
int N = 1;
while (N <= numCycles) {
printf("%d: Lather and rinse.\n", N);
++N;
}
printf("Done.\n");
return;
}
}
int main(void) {
PrintShampooInstructions(2);
return 0;
}
答案 1 :(得分:1)
这个代码片段做了什么?
int N = 1.0;
while ((numCycles > 1 ) && (numCycles < 4))
{
printf ("%d:Lather and rinse.\n", N);
++N;
}
它使得括号内的东西成为{},直到条件变为false。但条件中的价值永远不会改变......