rt,程序如下:
/*
** This Example computers the average of an arbitrary number of values.
*/
#include <stdio.h>
#include <ctype.h>
int main(void)
{
double sum = 0.0;
int count = 0;
for (;;)
{
double value = 0.0;
char answer = 0;
printf("Please enter the next number: \n");
scanf("%lf", &value);
++count;
sum += value;
printf("Continue?(Y or N): ");
scanf("%c", &answer);
if (tolower(answer) == 'n')
break;
}
printf("Result: %.2lf", sum / count);
return 0;
}
大意是求输入数字的平均值
显示是这样的
Please enter the next number:
45.5
continue?(Y or N):Please enter the next number:
(小白,图片上传不了)
输入数字45.5,再敲回车键,
scanf("%lf", &value); 这一句读取45.5这个数字
scanf("%c", &answer);这一句读取那个回车键
这个是什么状况,怎么解决?
二十分相送,望能解此题
待得结贴时,又学习一技
------解决方案--------------------------------------------------------
/*
** This Example computers the average of an arbitrary number of values.
*/
#include <stdio.h>
#include <ctype.h>
int main(void)
{
double sum = 0.0;
int count = 0;
for (;;)
{
double value = 0.0;
char answer = 0;
printf("Please enter the next number: \n");
scanf("%lf", &value);
++count;
sum += value;
printf("Continue?(Y or N): ");
fflush(stdin); //<----------------here!
scanf("%c", &answer);
if (tolower(answer) == 'n')
break;
}
printf("Result: %.2lf", sum / count);
return 0;
}
------解决方案--------------------------------------------------------
scanf("%lf", &value);
.....
char c;
while ((c=getchar()) != '\n' && c != EOF);
scanf("%c", &answer);