首先键盘输入要运算的数据,第二步选择运算符,实现简单的加减乘除和乘方,开方,绝对值
1条回答 默认 最新
- CSDN专家-天际的海浪 2022-01-04 22:24关注
你题目的解答代码如下:
#include <stdio.h> int main(int argc, char** argv) { float a,b; char op; END:printf("请输入算式:"); scanf("%f%c%f",&a,&op,&b); switch(op) { case '+': printf("%g+%g=%g\n",a,b,a+b);break; case '-': printf("%g-%g=%g\n",a,b,a-b);break; case '*': printf("%g*%g=%g\n",a,b,a*b);break; case '/': if (0==b) printf("除数不能为零!\n"); else printf("%g/%g=%g\n",a,b,a/b); break; default: printf("运算符错误!\n"); } char ch; printf("是否继续运算(Y/N or y/n):"); scanf("%1s",&ch); //%c改成%1s if(ch=='Y'||ch=='y') goto END; else printf("over!"); return 0; }
添加了乘方,开方,绝对值功能
#include <stdio.h> #include <math.h> int main(int argc, char** argv) { float a,b; char op; printf("请选择运算符加+ 减- * 除/ 乘方^ 开方@ 绝对值#"); scanf("%c",&op); if (op=='@' || op=='#') { printf("请输入一个数值:"); scanf("%f",&a); } else { printf("请输入两个数值:"); scanf("%f%f",&a,&b); } switch(op) { case '+': printf("%g+%g=%g\n",a,b,a+b);break; case '-': printf("%g-%g=%g\n",a,b,a-b);break; case '*': printf("%g*%g=%g\n",a,b,a*b);break; case '/': if (0==b) printf("除数不能为零!\n"); else printf("%g/%g=%g\n",a,b,a/b); break; case '^': printf("%g^%g=%g\n",a,b,powf(a,b));break; case '@': printf("%g开方=%g\n",a,sqrtf(a));break; case '#': printf("|%g|=%d\n",a,abs(a));break; default: printf("运算符错误!\n"); } return 0; }
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报 编辑记录无用 1
悬赏问题
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同