7-1 A除以B
真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error
。输出的商应保留小数点后2位。
输入样例1:
-1 2
输出样例1:
-1/2=-0.50
输入样例2:
1 -3
输出样例2:
1/(-3)=-0.33
输入样例3:
5 0
输出样例3:
5/0=Error
因为没有搞清楚C语言内部的类型计算关系,C语言基础不够扎实,所以踩了这道题的坑,以下进行对这道题相关总结。
因为C语言是强类型语言,如果用int类型进行计算得到的结果就一定会被强制转换为整型,结果会被取整,不进行四舍五入,直接丢弃小数部分,例如在数学中的1 / 2 = 0.5,就会被C语言取整为0。
本题错误代码
#include <stdio.h>
int main()
{
int a;
int b;
scanf("%d %d",&a,&b);
if(b>0)
printf("%d/%d=%.2lf",a,b,a/b);
else if(b==0)
printf("%d/%d=Error",a,b);
else
printf("%d/d=%.2lf",a,b,a/b);
return 0;
}
错误原因:将计算的两个数定义成了整型,结果已经被计算出来并且取整
本题正确解法(1)
将计算出的结果乘上1.0,转换为浮点型文章来源:https://www.toymoban.com/news/detail-717980.html
#include <stdio.h>
int main()
{
int a;
int b;
scanf("%d %d",&a,&b);
if(b>0)
printf("%d/%d=%.2lf",a,b,1.0*a/b);
else if(b==0)
printf("%d/%d=Error",a,b);
else
printf("%d/(%d)=%.2lf",a,b,1.0*a/b);
return 0;
}
本题正确解法(2)
直接将计算的变量定义为浮点型,注意:打印要输入的a和b要用%.0f表示,“%.0f”什么意思? %.0f 是输出 float 型或 double 型数据,按定点格式,小数点以下占0位。 也就是输出浮点数的整数部分,不输出小数点和小数点以下部分。 小数部分 4 舍 5 入。文章来源地址https://www.toymoban.com/news/detail-717980.html
#include<stdio.h>
int main()
{
double n;
double m;
scanf("%lf %lf",&n,&m);
if(m>0)
printf("%.0f/%.0f=%.2f",n,m,n/m);
else if(m==0)
printf("%.0f/%.0f=Error",n,m);
else
printf("%.0f/(%.0f)=%.2f",n,m,n/m);
return 0;
}
到了这里,关于7-1 A除以B 真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!