| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1411 人关注过本帖
标题:这道编程题,怎样修改我的输入方式??
只看楼主 加入收藏
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
结帖率:0
收藏
已结贴  问题点数:5 回复次数:12 
这道编程题,怎样修改我的输入方式??
[题目:相关概念:选择语句(switch语句)
题目描述:
输入2个浮点数和1个运算符(+,-,*或/),输出这2个浮点数经过该运算符的运算得到的结
果;当输入的运算符不属于上述4种之一时,应输出错误提示。
要求使用switch语句实现上述功能,示例输入及输出如下:
示例输入 示例输出
3.3 + 2.4 5.7
5.0 * 3.2 16.0
7.0 / 2.0 3.5
4.2 - 2.5 1.7
4.3 $ 2.2 Wrong Operator!
2.当使用scanf输入一个字符时,如果之前有其他的scanf,会将前一个scanf输入内容中最后的
换行符读入,可以使用getchar()函数忽略掉该字符(该函数的作用是读入一个字符,在此处的
目的是读入上一次输入的换行符),

解答
#include<stdio.h>
int main(void)
{
    float a, b, d;
    printf("请输入2个浮点数:\n");
    scanf_s("%f,%f", &a, &b);
    printf("请输入一个运算符,必须是+,-,*,\n");
    char c;
    switch (c = getchar())
    {
    case '+':d = a + b; break;
    case '-':d = a - b; break;
    case '*':d = a*b; break;
    case '/':d = a / b; break;
    default:printf("Wrong Operator!n");
    }
    printf("d=%f\n", d);
    return 0;
}
我该怎么修改我的输入??

[此贴子已经被作者于2016-10-16 11:12编辑过]

2016-10-15 15:59
cazhxi
Rank: 2
等 级:论坛游民
威 望:1
帖 子:18
专家分:96
注 册:2014-10-12
收藏
得分:1 
#include<stdio.h>
int main(void)
{
    float a, b, d;

    //printf("请输入2个浮点数:n");      //我想这个位置你想打换行吧应该是\n  不是n就能换行
    printf("请输入2个浮点数:\n");

    //scanf_s("%f,%f", &a, &b);        //这个语法错误,后面当然也不会对了
    scanf_s("%f %f", &a, &b);

    //printf("请输入一个运算符,必须是+,-,*,/n");   //这个换行我也是醉了\n  \n   \n
    printf("请输入一个运算符,必须是+,-,*,\n");

    char c;
    getchar();                               //既然知道scanf会带个\n,你为啥不先用getchar()把“\n”获取了呢,它不就不会影响后面了嘛
                                             //scanf这个函数我在有个帖子专门回答过,有兴趣你可以去看下https://bbs.bccn.net/thread-469802-1-1.html
    switch (c = getchar())
    {
    case '+':d = a + b; break;
    case '-':d = a - b; break;
    case '*':d = a*b; break;
    case '/':d = a / b; break;
    //default:printf("Wrong Operator!n");    //是\n  \n   \n 同学
    default:printf("Wrong Operator!\n");
     }

   // printf("d=%fn", d);         //是\n  \n   \n 同学
   printf("d=%f\n", d);
    return 0;
}

要认真啊小盆友

[此贴子已经被作者于2016-10-15 16:55编辑过]

2016-10-15 16:53
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:1 
回复 2楼 cazhxi
//scanf_s("%f,%f", &a, &b);        //这个语法错误,后面当然也不会对了
    scanf_s("%f %f", &a, &b);
楼主原来的代码 中文, 该为英文,
如果逗号改过来 语法没错 ,
按照原来的代码 输入时要加逗号

而按照改过后的代码  在输入两个数的中间加空格

早知做人那么辛苦!  当初不应该下凡
2016-10-15 18:56
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
收藏
得分:0 
回复 2楼 cazhxi
我是直接复制过来的额?不知道怎么就变了原图是这样的2
图片附件: 游客没有浏览图片的权限,请 登录注册

2016-10-16 11:08
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
收藏
得分:0 
回复 3楼 炎天
我本来写的没错,但不知复制过来就变了,看看我本来写的图?
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-10-16 11:09
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:1 
char c;后面加一句fflush(stdin);
2016-10-16 11:12
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
收藏
得分:0 
回复 6楼 linlulu001
还是不行
2016-10-16 11:15
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
收藏
得分:0 
回复 6楼 linlulu001
变成了这样
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-10-16 11:18
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 8楼 青丝叶
如果这样输入,将scanf_s里的","去掉就行了。
2016-10-16 11:31
青丝叶
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-10-15
收藏
得分:0 
回复 9楼 linlulu001
我试过了,没用啊,而且这样输入是对的呀,我表示很惆怅,我已经卡了很久了这个题目。
2016-10-16 11:35
快速回复:这道编程题,怎样修改我的输入方式??
数据加载中...
 
   



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

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