| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖
标题:求教,我该如何修改我的代码
取消只看楼主 加入收藏
c3242404
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-6-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
求教,我该如何修改我的代码
/*显示一个菜单,提供加减乘除选项,选择后程序要求输入2个数,并执行选择的操作*/
#include <stdio.h>
char get_chioce (void);//选择部分
float chuli_fir(void);//第一个数字的处理
float chuli_sec(void);//第二个数字的处理
//char get_first(void);
float jiafa(void);//加法
float jianfa(void);//减法
float jchengfa(void);//乘法
float chufa(void);//除法
float first_n;//第一个数字
float second_n;//第二个数字

int main (void)
{
    int chioce;//选择
   
    while( (chioce = get_chioce()) != 'q')
    {
        switch(chioce)
        {
            case 'a':jiafa();
                break;
            case 'b':jianfa();
                break;
            case 'c':chengfa();
                break;
            case 'd':chufa();
                break;
        }
        
    }//endof while( (chioce = get_chioce()) != 'q')
    printf("再见!\n");
   
    return 0;
}//endof mian()


char get_chioce(void)
{
    char c;
   
    printf("请选择你的操作:\n");
    printf("a.加法\tb.减法\n");
    printf("c.乘法\td.除法\n");
    printf("q.退出\n");
   
    c = getchar();
    while( (c<'a' || c>'d') && c!='q')
    {
        printf("请输入a、b、c、d或q。\n");
        c = getchar();
        
    }
   
    return c;
}//endof get_chioec()


float chuli_fir(void)//第一个数字的处理
{
    float first_n;//第一个数字
   
    printf("请输入第一个数字:");
    while(scanf("%f", &first_n) != 1)
    {
        printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
        break;
    }
   
    return first_n;
}//endof chuli_fir()


float chuli_sec(void)//第二个数字的处理
{
    float second_n;//第二个数字
   
    printf("请输入第二个数字:");
    if(second_n=0)
    {
        printf("请输入一个非零的数:");
        scanf("%f", &second_n);
    }
    while(scanf("%f", &second_n) != 1)
    {
        printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
        break;
    }
   
    return second_n;
}//endof chuli_sec()


/*char get_first(void)
{
    int ch;

    ch = getchar();
    while(getchar() != '\n')
        continue;

    return ch;
}//endof get_first()*/

float jiafa(void)//加法
{
    chuli_fir();
    chuli_sec();
    printf("%.2f+%.2f=%.2f\n", first_n, second_n,
                            first_n+second_n);
}//endof jiafa()


float jianfa(void)//减法
{
    chuli_fir();
    chuli_sec();
    printf("%.2f-%.2f=%.2f\n", first_n, second_n,
                            first_n-second_n);
}//endof jianfa()


float chengfa(void)//乘法
{
    chuli_fir();
    chuli_sec();
    printf("%.2f*%.2f=%.2f\n", first_n, second_n,
                            first_n*second_n);
}//endof chengfa()


float chufa(void)//除法
{
    chuli_fir();
    chuli_sec();
    printf("%.2f/%.2f=%.2f\n", first_n, second_n,
                            first_n/second_n);
}//endof chufa()
这段代码现在在3个问题上卡壳了,第一个是输入的数字无法代入程序,第二个是若输入错误的选项“请输入a、b、c、d或q。”这句话会重复2遍,第三个是若输入的不是数字就会把提示都说一遍,下图展示了3个错误的地方[local]1[/local]
搜索更多相关主题的帖子: include 如何 
2014-06-22 10:00
c3242404
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-6-22
收藏
得分:0 
谢谢了,已经解决前2个问题,第三个问题我可能没说清楚,第三个问题是若输入的不是数字,提示"这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:",然后重新输入第一个数字,而不是跳过第一个直接输入第二个数字。话说这里怎么发图啊?我之前发的图没显示出来,图里展示了我所说的3个问题的运行
图片附件: 游客没有浏览图片的权限,请 登录注册
还忘了一个问题,我想选择除法后判断第二个数是否为0,若为0则重新输入第二个数,求教该怎么修改

[ 本帖最后由 c3242404 于 2014-6-22 18:51 编辑 ]
2014-06-22 18:42
快速回复:求教,我该如何修改我的代码
数据加载中...
 
   



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

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