岳贝心 2022-10-31 18:26 采纳率: 0%
浏览 31

简易计算器,但运算数前后可能会存在一个或多个空白宁符(空格、回车或 Tab)

问题遇到的现象和发生背景

从键盘输入数学算式,计算其结果。运算数可以是整数,也可以是浮点数,假定输入的数据中不存在非法字符,但运算数前后可能会存在一个或多个空白宁符(空格、回车或 Tab)。要求实现加、减、乘、除、求余运算,可不考虑运算符的优先级别。

用代码块功能插入代码,请勿粘贴截图

#include <stdio.h>
#include <stdlib.h>

int main()
{
char b;
double c,sum;
while(1){
scanf ("%lf",&sum);
while (1){
scanf ("%c",&b);
if (b=='=') break;
scanf ("%lf",&c);

if (b=='-') sum = sum-c;
if (b=='+') sum = sum+c;
if (b=='') sum = sumc;
if (b=='/') sum = sum/c;
if (b=='%') {while (sum>=0){sum = sum-c;} sum=sum+c;};
};
printf("%lf",sum);
}
return 0;
}

运行结果及报错内容

我写的这个程序因为scanf其中有空格的话字符就不是单纯的+-*、%了,但要求运算数前后可能会存在一个或多个空白宁符(空格、回车或 Tab)。

我的解答思路和尝试过的方法

我尝试过用删除字符串里面空格的函数,但是不会整不好用,能帮忙看看吗?

我想要达到的结果

运算数前后可能会存在一个或多个空白宁符(空格、回车或 Tab),要求实现加、减、乘、除、求余运算,

  • 写回答

1条回答 默认 最新

  • 山河丘壑 2022-11-01 09:47
    关注

    用scanf输入后,可以试着判断一下每个字符的ascll码值是否合法。如果合法,存入运算表达式中,不合法进行下一个字符的判断。直到这个字符串判断完

    评论

报告相同问题?

问题事件

  • 创建了问题 10月31日

悬赏问题

  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal