鱼C论坛

 找回密码
 立即注册
查看: 3497|回复: 19

请帮忙用VC++6.0帮我写个加减法计算器(我用坐公交车阐述问题)~

[复制链接]
发表于 2016-6-30 14:31:25 | 显示全部楼层 |阅读模式
88鱼币
本帖最后由 晚起鸟儿 于 2016-6-30 14:38 编辑

如题,想象坐公交,起点站为A,当输入Q就相当于司机告诉我们到终点站了,(Q前面一个字母就是终点站),有几个站点和总长多少未知,(从A至B至C再至D……,当输入Q就结束,这里我们设D为终点站),结束后要计算两个站点间的长度AB,BC,CD……然后是起点到所到各站点的长度AC,AD……(这样写不知大伙能不能看懂,下面是具体程序的要求)

(1)从键盘获取的大写字母和实数,进行运算并打印出结果
(2)输入格式为先输入单个大写字母"X","Z","U","W"中的一个,然后是一个整形或浮点型实数,(一个字母后面带个数)输入空格再按前面格式输入,如果输入回车表示这行结束,然后每行按这种格式输入,如果格式错误打印出“请重新输入”,直至输入Q就结束所有输入,然后进行计算并打印出结果
(3)X对应U,Z对应W
(4)获取每个字母及后面带的数,如果是X和Z就原样打印该行字母和后面带的数,如果是U或W就用前面一行的X或Z带的数+U或带的数,如果后面一行又是U或W又用前面一行的结果+它
(5)下面左边为随机输入的数据,右边为注释计算方法和计算结果,要有通用性哦,谢谢您的关注并耐心看了~

X53.2 Z41                //这些数全是随机输入的,每个大写字母后面必定带一个实数(整型或浮点型)每行
                                //可以输入一对或两对(此行原样输出)
U30                     //此行系统发现第一个字母是U就将前一行X后面带的53.2+U后面带的30(此行输出
                                //X83.2)
U20 W13                 //此行系统发现第一个字母是U就将前一行计算出的83.2+U后面带的20,第二个字
                                //母为W用41+13(此行输出X103.2 Z54)
X80.6 W15                //以此类推(此行输出X80.6 Z69)以空格为间隔,回车结束一行输入
Q                                //输入Q并回车时系统判定数值全部输入完成,打印出上面四行输出的结果


无标题.jpg

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-30 16:26:05 | 显示全部楼层
作业题呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-1 10:15:19 | 显示全部楼层
我去,这个不是类似词法分析器的东西么?作业题顶多提供思路,如果问具体问题错误在哪里还能说上一两句,这种题目自己连写都不写就拿出来问的基本上是没人会回答的

评分

参与人数 1荣誉 +1 鱼币 +5 贡献 +1 收起 理由
晚起鸟儿 + 1 + 5 + 1 谢谢提供词法分析器这个概念,不懂的再请教.

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-4 15:38:58 | 显示全部楼层
偶小白一个,,仰望仰望大神。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-5 07:12:03 | 显示全部楼层
fishcany 发表于 2016-7-4 01:23
python code, fishcoin pls.

主函数没有,头文件也没,好多报错,请帮忙再改下,另外帮忙注释下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-5 18:47:39 | 显示全部楼层
晚起鸟儿 发表于 2016-7-5 07:12
主函数没有,头文件也没,好多报错,请帮忙再改下,另外帮忙注释下,谢谢

这是Python好吗、、、

评分

参与人数 1荣誉 +1 鱼币 +5 贡献 +1 收起 理由
晚起鸟儿 + 1 + 5 + 1 符版主可以帮忙写个VC的么

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-5 22:12:58 | 显示全部楼层
可以的,过几天给你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-5 22:22:47 | 显示全部楼层
无符号整形 发表于 2016-7-5 22:12
可以的,过几天给你

好的,先谢谢了,最好带上注释哦,顺便问下发到论坛的源码怎样让左侧带上行号,下侧弄个“复制代码”,怎样做到的呢?(我VC左侧有行号,但复制不到行号)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-6 16:27:44 | 显示全部楼层
有点难度哦!问题是怎样识别空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-6 16:27:48 | 显示全部楼层
有点难度哦!问题是怎样识别空格。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-6 21:25:25 | 显示全部楼层
本帖最后由 晚起鸟儿 于 2016-7-6 21:29 编辑
无符号整形 发表于 2016-7-6 16:27
有点难度哦!问题是怎样识别空格


#include<stdio.h>
char str[9];
int main(){
gets(str);
if(str[0]==' '){
        printf("这是一个空格\n");}
else{
        printf("这不是空格\n");}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-6 21:33:35 | 显示全部楼层
本帖最后由 无符号整形 于 2016-7-6 21:36 编辑
晚起鸟儿 发表于 2016-7-6 21:25
#include
char str[9];
int main(){


问题就是怎样去识别字符串中的空格
我的思路是这样的:
1.用getch获取大写字母
2.再用scanf接受其余数据
3.最后用atof吧字符串转化成数字

你发现问题了吗?
这里有一个严重的问题:scanf不能获取空格

你会想,可以用gets呀!
很难,你要追踪空格的位置,还要识别数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:07:31 | 显示全部楼层
本帖最后由 晚起鸟儿 于 2016-7-6 22:32 编辑
无符号整形 发表于 2016-7-6 21:33
问题就是怎样去识别字符串中的空格
我的思路是这样的:
1.用getch获取大写字母


我觉得最麻烦的是不知道输入的数字长度,而且不知道是整数还是浮点数

大写字母就那四个,空格就数字后面有个,回车就表示输完一行,要用每行字母进行比较

先不管空格可以么,暂时先不要空格,也就是每行一至两个字母,每个字母后面各未知的一个实数,这些都要从键盘输入,请问scanf括号里面如何写

另外空格(Space)的ASCII码值是:32,可以从这上面着手么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-6 22:31:08 | 显示全部楼层
晚起鸟儿 发表于 2016-7-6 22:07
我觉得最麻烦的是不知道输入的数字长度,而且不知道是整数还是浮点数

大写字母就那四个,空格就数字后 ...

非常容易,atof是整数返回整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-6 22:41:10 | 显示全部楼层
无符号整形 发表于 2016-7-6 22:31
非常容易,atof是整数返回整数

不要空格可以写出来么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-15 12:11:53 | 显示全部楼层
摆渡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-15 17:28:06 | 显示全部楼层
晚起鸟儿 发表于 2016-7-5 22:22
好的,先谢谢了,最好带上注释哦,顺便问下发到论坛的源码怎样让左侧带上行号,下侧弄个“复制代码”,怎 ...

这个复制代码要这样做:
当你在回复主题的时候,在打字的地方,找到<>,按下这个输入你想要的代码就可以了

评分

参与人数 1荣誉 +1 鱼币 +5 贡献 +1 收起 理由
晚起鸟儿 + 1 + 5 + 1 真的耶,鱼C好神奇,谢谢解答~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-18 20:46:54 | 显示全部楼层
轮回的夏 发表于 2016-8-15 17:28
这个复制代码要这样做:
当你在回复主题的时候,在打字的地方,找到,按下这个输入你想要的代码就可以了
#include<stdio.h>
char str[9];
int main(){
gets(str);
if(str[0]==' '){
        printf("这是一个空格\n");}
else{
        printf("这不是空格\n");}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-25 15:38:54 | 显示全部楼层

偶小白一个,,仰望仰望大神。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 20:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表