对于输入的两个整数,按照要求输出其和差积商。
输入格式:
在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。
输出格式:
共四行,格式是:
[a] + [b] = [a+b]
[a] - [b] = [a-b]
[a] * [b] = [a*b]
[a] / [b] = [a/b]
其中,带有方括号的内容(如[a]、[b]、[a+b]等)表示相应整数或运算结果的值,在输出时要用实际的值代替。
并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。
提示:注意表达式中的空格。
输入样例1:
6 3
输出样例1:
6 + 3 = 9
6 - 3 = 3
6 * 3 = 18
6 / 3 = 2
输入样例2:
8 6
输出样例2:
8 + 6 = 14
8 - 6 = 2
8 * 6 = 48
8 / 6 = 1.33
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
以下是我的答案:
#include<stdio.h>
int main()
{
int a,b;
double div;
scanf("%d %d",&a,&b);
div=a*1.0/b;
if(a%b) printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %.2f",a,b,a+b,a,b,a-b,a,b,a*b,a,b,div);
else printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %.0f",a,b,a+b,a,b,a-b,a,b,a*b,a,b,div);
return 0;
}
还是延续了能用一句写完,绝不写第二句的偷懒行为,把加减乘除四句输出全都写在一个句子里了。
首先题目保证输入的两个数都是非负整数,易知加、减、乘三则运算都在整数型范围内,但除不一定,所以为除法div单独设置double型。并且采用乘以1.0的方式将整数型数据 a 转化为浮点型,以保证除法结果div的值准确。
输出时有两种格式要求。如果能整除,那么输出整数,如果不能整除,那么保留两位小数。所以使用a%b判断是否整除。无论余数是几,只要非0,都可以作为if条件判断为真的值,所以直接使用if(a%b)为真输出不能整除的结果,用“%.2f”保证输出的是两位小数。
else语句用于判断能整除、也就是a%b余数为0的情况,此时要求输出整数,也就是不包含小数部分,所以需要使用“%.0f”控制小数部分位数为0,也就是没有小数部分。(不加限制的话会直接输出6位小数。)
1万+



被折叠的 条评论
为什么被折叠?



