当前位置: 代码迷 >> C++ >> gcc scanf输入有关问题
  详细解决方案

gcc scanf输入有关问题

热度:3725   发布时间:2013-02-26 00:00:00.0
gcc scanf输入问题
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);
  相关解决方案