| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:c程序,不知道为什么不能用啊。
只看楼主 加入收藏
qq812017077
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-2-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
c程序,不知道为什么不能用啊。
#include <stdio.h>
#include <ctype.h>
char menu(void);
char get_first(void) ;
float get_float(void);
int main(void)
{
    char ch ;
    float m , n ;
    while ( ( ch = menu() ) != 'q');
    {
        printf ("请输入第一个数:\n");
        m = get_float();
        printf ("请输入第二个数:\n");
        n = get_float();
        while (ch == 'd' && n == 0)
        {
            printf ("0不能作除数,请重新输入 ");
                n = get_float() ;
        }
        switch(ch)
        {
        case 'a': printf ("您选择的是加法:%.2lf + %.2lf = %.2lf \n", m , n , m+ n);  
            break ;
        case 'b': printf ("您选择的是减法:%.2lf - %.2lf = %.2lf \n", m , n , m- n);  
            break ;
        case 'c': printf ("您选择的是乘法:%.2lf * %.2lf = %.2lf \n", m , n , m* n);  
            break ;
        case 'd': printf ("您选择的是除法:%.2lf / %.2lf = %.2lf \n", m , n , m/ n);  
            break ;
        default: printf ("我只能识别a,b,c,d.请重新输入: \n");  
            break ;
        }
    }
    printf ("结束!\n");
    getchar();
    return 0 ;
}
char menu(void)
{
    char ch ;
    printf ("请输入你要进行的运算:\n");
    printf ("a) 加法     b)减法  \n");
    printf ("c) 乘法     d)除法  \n");
    printf ("q)  退出\n");
    ch = get_first() ;
    return ch;
}
char get_first(void) //得到字符串中的第一个字符,滤除其他字符
{
    int ch;
    while( isspace( ch = getchar() ) )
        continue;
    while ( getchar() != '\n')
        continue;
    return ch;
}
float get_float(void)
{
    float m ;
    char ch[30];
    while ( scanf("%f",&m)!= 1)
    {
        gets(ch);
        printf ("%s不是一个数字,请输入一些像 2.5 ,-1,-1.78E8之类的数字。\n",ch);
    }
    while ( getchar() !='\n')
        continue ;
    return m ;
}
小弟新手 ,求帮助啊!

[ 本帖最后由 qq812017077 于 2015-2-21 12:16 编辑 ]
搜索更多相关主题的帖子: c程序 include 
2015-02-21 12:15
xingjinda
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:35
专家分:125
注 册:2012-11-17
收藏
得分:7 
while ( ( ch = menu() ) != 'q');这里不能用循环,来个if就行
2015-02-21 13:20
hzg123
Rank: 2
等 级:论坛游民
帖 子:8
专家分:34
注 册:2015-2-16
收藏
得分:7 
把while循环后的  ;去掉
2015-02-21 16:23
工长56
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2015-1-18
收藏
得分:7 
学习中
2015-02-21 17:49
快速回复:c程序,不知道为什么不能用啊。
数据加载中...
 
   



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

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