计算器
请设计一款加减乘除计算器,要求能输入小数,并对非数字的输入进行报警。
#include <stdio.h>
int main(int arg,const char *argv[]){
char mrk;
float num1,num2,result=0;
int n1,n2;
printf("请输入需要计算的式子:");
n1 = scanf("%f",&num1);
scanf("%c",&mrk);
n2 = scanf("%f",&num2);
//判断输入的是否为数字
if(n1!=1){
printf("输入的第一个数字错误!\n");
return 0;
}
if(n2!=1){
printf("输入的第二个数字错误!\n");
return 0;
}
//通过的运算符进行运算
switch(mrk){
case'+':{
result=num1+num2;
break;
}
case'-':{
result=num1-num2;
break;
}
case'*':{
result=num1*num2;
break;
}
case'/':{
if(num2==0){
printf("0不能当作除数\n");
return 0;
}
result=num1/num2;
break;
}
default:{
printf("运算符错误!\n");
return 0;
}
}
printf("%f %c %f = %f\n",num1,mrk,num2,result);
}
运行结果:
红框所标注的是使用过程中出现的一个问题,就是小数位数比较少的会自动填充不是零的数导致结果错误。这是因为变量中输入的数字的变量属于float型,其可使用的指数范围是[-127,127],如果将变量换成long double型,则可以使用的指数范围变成[-32767,32767]。
边缘计算
我个人认为边缘计算是增强设备与云端之间传输后获得更好的服务,即在边缘服务器加装智能芯片从而提供安全,数据,计算等服务,无需再通过网络传输进入到云计算中心,减少传输过程中出现的拦截,而且通过芯片的处理可以避免非法用户通过破解边缘服务器获取其他用户的信息和权限。
而边缘计算2.0我觉得更多是通过构建一个不同形态的边缘计算服务来处理从终端收取到信息,提高云端的处理速度。
到了边缘计算3.0则是将云、边缘和终端分为3层并合成一个系统,提高三者之间对计算、网络和存储资源的使用。
以上只代表个人浅显,如有错误请在评论里指出,非常感谢。