我这个while(scanf("%lld/%lld",&a,&b))
里面有scanf("%c",&fu);
但是最后一次读入a和b 符号就不用读了
我又不能判断是不是最后一次读入,因为题目没说多少个!
求助!
by caojiaming @ 2022-12-09 10:49:49
第一个while循环里改成这样也不行:
```cpp
if(scanf("%c",&fu))
{
if(fu=='+')
{
ans+=(a*1.0/b);
}
else
{
ans-=(a*1.0/b);
}
}
else
{
break;
}
```
by caojiaming @ 2022-12-09 10:51:52
试一下加一个读入非空判断?@[caojiaming](/user/775551)
by MysteriousEast @ 2022-12-09 11:22:15
具体要怎么改
@[MysteriousEast](/user/603868)
by caojiaming @ 2022-12-09 11:35:52
我也不太确定
while里写一个if判断读入数据是否为空
你也可以用cout检查是在哪死循环
by MysteriousEast @ 2022-12-09 11:41:23
@[caojiaming](/user/775551)
by MysteriousEast @ 2022-12-09 11:41:38
那题目为什么不说有多少个分数呢
~~哦,这样Csh还要数每一题分数的个数~~
~~但他数都不想数吗~~
说了更简单
by caojiaming @ 2022-12-09 11:43:46
@[MysteriousEast](/user/603868)
用string读入
再遍历得到分数个数行吗
但那又不好找到每个分子和分母了
by caojiaming @ 2022-12-09 11:52:25
@[caojiaming](/user/775551)
我明白了,题目里没有空格,他会一直读
------------
字符串可以,遍历到数字开始累加,遍历到分数线开始累加下一数字直到读到+-*
by MysteriousEast @ 2022-12-09 11:56:40
题目没说有乘法
@[MysteriousEast](/user/603868)
by caojiaming @ 2022-12-09 12:58:07