| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 748 人关注过本帖
标题:为什么啊?(2)
只看楼主 加入收藏
墨香555
Rank: 2
等 级:论坛游民
帖 子:115
专家分:31
注 册:2010-10-21
结帖率:96.15%
收藏
已结贴  问题点数:10 回复次数:11 
为什么啊?(2)
我是c初学者 有些问题真的搞不懂啊 所以请高手们认真对待我的问题啊谢谢啦
#include"stdio.h"
void main()
{
    int sum,i,score,c;
    sum=0;
    i=0;
    printf("是否输入数据?(Y/N)");
    c=getchar();
    while(c=='Y'||c=='y')
    {
        printf("\n请输入分数:");
        scanf("%d",&score);
        getchar();
        sum=sum+score;
        i++;
        printf("\n是否继续输入数据(Y/N)");
        c=getchar();
            }
    if(i!=0)
        printf("aver=%5.2lf\n",1.0*sum/i);
    else
        printf("\nno data!");
}
中的getchar();能不能省略啊 getchar();是什么意思啊 有什么作用吗

搜索更多相关主题的帖子: 数据 void include 
2010-11-04 22:42
wangdefeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2010-10-5
收藏
得分:0 
回复 楼主 墨香555

getchar();就是把你输入的Y赋给c.也就是获取字符的意思。getchar();不能省略。
2010-11-04 22:51
qb3276
Rank: 2
等 级:论坛游民
帖 子:24
专家分:42
注 册:2010-10-25
收藏
得分:0 
getchar()是获取一个字符,例如:c=getchar();
有点像是scanf("%c", &c); 不知道这么说有没明白点?
2010-11-05 11:04
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
如果按照楼上两位所说为什么循环外的c=getchar()就不用写成getchar();c=getchar();了呢?而为什么第二个直接就不行了呢?
2010-11-05 11:16
谁的益达
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2010-10-16
收藏
得分:0 
相当于 scanf()就是 让你从键盘输入一个字符 ok
2010-11-05 11:17
谁的益达
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2010-10-16
收藏
得分:0 
#include"stdio.h"
void main()
{
    int sum,i,score,c;
    sum=0;
    i=0;
    printf("是否输入数据?(Y/N)");
    c=getchar();
    while(c=='Y'||c=='y')
    {
        printf("\n请输入分数:");
        scanf("%d",&score);
        getchar();{ 这个   貌似可以删除啊  我感觉在这没啥作用)
        sum=sum+score;
        i++;
        printf("\n是否继续输入数据(Y/N)");
        c=getchar();
            }
    if(i!=0)
        printf("aver=%5.2lf\n",1.0*sum/i);
    else
        printf("\nno data!");
}
2010-11-05 11:22
afcold
Rank: 1
等 级:新手上路
帖 子:2
专家分:6
注 册:2010-11-4
收藏
得分:6 
不能删除,删除就只能输入一组数据.getchar()有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).删了之后c=getchar()就直接读取 '/n',while循环就结束了。
2010-11-05 11:54
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
就是说从键盘输入一个字符,并把这个字符赋给c,不能省.

经验积累中............
2010-11-05 12:00
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
程序代码:
#include"stdio.h"
void main()
{
    int sum,i,score,c;
    sum=0;
    i=0;
    printf("是否输入数据?(Y/N)");
    c=getchar();
    while(c=='Y'||c=='y')
    {
        printf("\n请输入分数:");
        scanf("%d",&score);
        fflush(stdin);
        sum=sum+score;
        i++;
        printf("\n是否继续输入数据(Y/N)");
        c=getchar();
            }
    if(i!=0)
        printf("aver=%5.2lf\n",1.0*sum/i);
    else
        printf("\nno data!");
}
按照楼上所说,清楚键盘缓存的话就可以删除了
2010-11-05 12:00
qb3276
Rank: 2
等 级:论坛游民
帖 子:24
专家分:42
注 册:2010-10-25
收藏
得分:0 
printf("是否输入数据?(Y/N)");
    c=getchar();
    while(c=='Y'||c=='y')
    {
        printf("\n请输入分数:");
        scanf("%d",&score);
        fflush(stdin);
        sum=sum+score;
        i++;
        printf("\n是否继续输入数据(Y/N)");
        c=getchar();
回复9楼:  在这里清除缓存和使用gtechar();效果是一样的,gtechar();是为了接受上面scanf()输入留下的最后一个回车键,把回车键
吸收了,缓存也就空了。
2010-11-05 12:32
快速回复:为什么啊?(2)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038272 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved