| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1025 人关注过本帖
标题:新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区别
取消只看楼主 加入收藏
HolyDumpling
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:14
专家分:10
注 册:2016-10-28
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:0 
新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区别
新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区别

以下代码将//去掉则可以正确执行,加上//则会导致login()函数的scanf语句跳过执行。求解答。

程序代码:
#include<stdio.h>
void login();
void menu();
void add();
int main()
{
    char m;
    login();
    menu();
    //while(getchar()!='\n');
    printf("请输入选择:\n");
    m=getchar();
    switch(m)
    {
    case 'A':printf("a\n");break;
    case 'B':printf("b\n");break;
    case 'C':printf("c\n");break;
    }
    return 0;

}
void menu()
{
    printf("*********\n");
    printf("*   A   *\n");
    printf("*   B   *\n");
    printf("*   C   *\n");
    printf("*********\n");
}
void login()
{
    int mm;
    printf("请输入登录口令:\n");
    scanf("%d",&mm);
}


下面这段代码中,在//这一行中将%fl换成%f ,则无法得出正确结果,求教。

程序代码:
#include<stdio.h>
#include<math.h>
int san(double a,double b,double c);
int main()
{
    double x,y,z;
    int f;
    printf("请输入三角形的三边,以空格隔开:\n");
    //scanf("%lf %lf %lf",&x,&y,&z);
    f=san(x,y,z);
    if(f==1)
        printf("这是三角形!\n");
    else
        printf("这不是三角形!\n");
    return 0;

}
int san(double a,double b,double c)
{
    int m;
    if(a+b>c && b+c>a && c+a>b)
        m=1;
    else
        m=0;
    return m;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-10-28 21:00
快速回复:新手求助!关于getchar()!='\n'与scanf的冲突。另外,关于%fl和%f的区 ...
数据加载中...
 
   



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

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