黑马程序员技术交流社区

标题: 继续求助大神!!! [打印本页]

作者: 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
Heartbeats、 发表于 2015-5-2 08:38
这是C吗?

是的, 没有错,这就是传说中的c

作者: 凌乱    时间: 2015-5-2 08:59
你不是已经解决了么
作者: wg592930    时间: 2015-5-2 10:42
凌乱 发表于 2015-5-2 08:59
你不是已经解决了么

没有啊, 还是停不下,难道编译器有问题?
作者: 仰望的繁华    时间: 2015-5-2 11:16
本帖最后由 仰望的繁华 于 2015-5-2 11:17 编辑
wg592930 发表于 2015-5-2 10:42
没有啊, 还是停不下,难道编译器有问题?

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