黑马程序员技术交流社区
标题: 继续求助大神!!! [打印本页]
作者: wg592930 时间: 2015-5-2 07:55
标题: 继续求助大神!!!
#include<stdio.h>
int main()
{
char answer ='0' ;
float average = 0;
int count =0 ;
int sum = 0;
int value = 0;
for(;;)
{
printf("请输入一个整数:\n");
scanf("%d", &value);
count ++;
sum += value;
printf("请问您是否继续输入,请选择 Y or N:\n"); // :loveliness:问题 : 如何让程序运行时,在这个地方停住,当用户输入指令后继续执行
scanf("%c",&answer);
if(answer=='n' || answer=='N')
break;
}
average = (float)sum /count;
printf("您输入的所有整数的和为 :%d\n您输入的所有整数的平均值为:%.2f\n", sum ,average);
return 0;
}
作者: Heartbeats、 时间: 2015-5-2 08:38
这是C吗?
作者: wg592930 时间: 2015-5-2 08:55
是的, 没有错,这就是传说中的c
作者: 凌乱 时间: 2015-5-2 08:59
你不是已经解决了么
作者: wg592930 时间: 2015-5-2 10:42
没有啊, 还是停不下,难道编译器有问题?
作者: 仰望的繁华 时间: 2015-5-2 11:16
本帖最后由 仰望的繁华 于 2015-5-2 11:17 编辑
for循环条件为空,if成立有break,if不成立呢?if不成立for循环会如何?
作者: Micro 时间: 2015-5-2 11:24
for 写成这样是不科学的。不好的做法。可以定义一个变量如i来控制是否结束循环,或者用while语句。遇到scanf自然会停下来,如果停不下来,肯定是你写的程序有问题。
作者: LLLX77 时间: 2015-5-2 11:34
用getchar(),不要用scanf
作者: shenxian88 时间: 2015-5-2 12:10
你这个,首先for没有设定循环条件,其次,你的函数里面没有定义字符变量接收\n,这样敲回车的时候系统就把\n赋值给answer,所以,answer的值并不是你输入的Y或者N;以下是我改过的代码,运行结果是正确的你看以下,如果问题解决了请结贴,这样你也有分,我也有分
#include<stdio.h>
int main()
{
char answer ='0' ;
float average = 0;
int count =0 ;
int sum = 0;
int value = 0;
char temp;//定义一个变量接收\n
for(;1;)
{
printf("请输入一个整数:\n");
scanf("%d", &value);
count ++;
sum += value;
scanf("%c",&temp);//接收\n
printf("请问您是否继续输入,请选择 Y or N:\n"); // 问题 : 如何让程序运行时,在这个地方停住,当用户输入指令后继续执行
scanf("%c",&answer);
if(answer=='n' || answer=='N')
{
break;
}
}
average = (float)sum /count;
printf("您输入的所有整数的和为 :%d\n您输入的所有整数的平均值为:%.2f\n", sum ,average);
return 0;
}
作者: 霸王睡别姬 时间: 2015-5-2 22:47
用getcher()吧 等待一个字符
作者: 大家叫我小祥子 时间: 2015-5-2 23:10
我很想回答,但是我还是水了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |