标题:scanf里面%c前面什么时候加空格,为什么有时候加有时候不加
只看楼主
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
 问题点数:0 回复次数:3 
scanf里面%c前面什么时候加空格,为什么有时候加有时候不加
输入一个四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。题目保证输入与输出均在双精度范围内。

输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间没有空格,操作数的数据类型为实型。

输出格式:
在一行中输出表达式的运算结果,保留两位小数。
比如这道题
如果除法分母为0,则输出错误信息“Divisor can not be 0!”;如果输入了除加减乘除以外的非法运算符,则输出错误信息“Unknown operator!”。

输入样例1:
3.1+4.8
输出样例1:
7.90
输入样例2:
98/0
输出样例2:
Divisor can not be 0!
输入样例1:
123%3
输出样例1:
Unknown operator!


int main()
{
   double a,b,d;
   char c;
   scanf("%lf%c%lf",&a,&c,&b);
   switch(c)
  {case'+':printf("%.2lf",a+b);break;
   case'-':printf("%.2lf",a-b);break;
   case'*':printf("%.2lf",a*b);break;
   case'/':
    {if(b==0)
    printf("Divisor can not be 0!");
    else if(b!=0)
    printf("%.2lf",a/b);break;
    }break;
   default:printf("Unknown operator!");break;
  }
  return 0;
}
为什么这个里面%c前面不加
搜索更多相关主题的帖子: case 输出 break printf 输入 
2019-11-17 11:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
为什么这个里面%c前面不加
因为
其间没有空格

2019-11-18 09:27
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
得分:0 
回复 2楼 rjsp
为什么有时候要加
2019-11-19 12:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用黑暗骑士5D在2019-11-19 12:25:54的发言:

为什么有时候要加

你问的东西怎么如此奇怪?
scanf 的格式化字符串中,空白字符 表示略过连续的所有空白字符。你需要略过空白字符,你就加;你不需要略过空白字符,你就不加。

就像吃法,饿了想吃就吃,饱了不想吃就不吃。为什么老是问“为什么有时吃饭有时不吃饭”
2019-11-19 13:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497866-1-1.html




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

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