【发布时间】:2013-06-25 18:04:31
【问题描述】:
我目前正在阅读 Ivor Horton 的《Beginning C》。无论如何,我不确定的for 正在打印我的printf 声明两次,然后再继续。我确定我做错了什么,但我直接从书中复制了代码。如果这很重要,我正在使用 Dev-C++。这是代码...谢谢
#include <stdio.h>
#include <ctype.h> // For tolower() function //
int main(void)
{
char answer = 'N';
double total = 0.0; // Total of values entered //
double value = 0.0; // Value entered //
int count = 0;
printf("This program calculates the average of"
" any number of values.");
for( ;; )
{
printf("\nEnter a value: ");
scanf("%lf", &value);
total+=value;
++count;
printf("Do you want to enter another value? (Y or N): ");
scanf("%c", &answer);
if(tolower(answer) == 'n')
break;
}
printf("The average is %.2lf.", total/count);
return 0;
}
【问题讨论】:
-
看起来不错:codepad.org/05iK44DP
-
此程序计算任意数量值的平均值。输入一个值:5 你想输入另一个值吗?(Y 或 N):输入一个值:如你所见,它直接跳过了 scanf,我不知道为什么......再次感谢
-
answer的值默认为'N',我不熟悉scanf()但如果由于某种原因它没有覆盖变量,则循环中断条件将为真。 -
C 的经验法则。它永远不是编译器。永远。
-
有趣的是我的书已经有 150 页了,这是我第一次搞砸了。