鱼C论坛

 找回密码
 立即注册
查看: 3145|回复: 11

vc++6.0识别运算问题请教

[复制链接]
发表于 2016-6-9 14:32:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请帮忙写个程序,识别出输入的大写字母并运用字母后面的double值数据进行运算(输入字母顺序不分先后),
前面两行系统检测到输入的是X或Z,直接原样打印,第三行
U和W分别对应X加U后面的数值和Z加W后面的数值(比如第二组前面X50 ,后面U10就50+10,打印出X60 )
输入这三组测试,后两组数值打印出的计算结果和第一组相同,并且可一直无限输入,键入大写Q并回车开始运算并打印出结果

第一组
X50
Z30
X60 Z20

第二组
X50
Z30
U10 W-10

第三组
X50
Z30
U10 Z20

这三组数值为了阐述问题随机写的,如果输入的数值前面没有大写字母要打印出错误,然后在下一行重新输入,要输入任何数值都通用哦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-9 18:52:37 | 显示全部楼层

回帖奖励 +5 鱼币

是我的理解能力太差吗?我无法理解你的题目

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-9 21:16:39 | 显示全部楼层
人造人 发表于 2016-6-9 18:52
是我的理解能力太差吗?我无法理解你的题目

是我没讲清楚,不好阐述,请问哪句不能理解呢?就是可以输入大写字母XZUW,每个字母后面带数据,然后根据输入的字母直接打印或用字母后的数据进行相应的运算并打印出结果~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-9 21:37:49 | 显示全部楼层
晚起鸟儿 发表于 2016-6-9 21:16
是我没讲清楚,不好阐述,请问哪句不能理解呢?就是可以输入大写字母XZUW,每个字母后面带数据,然后根据 ...

用字母后的数据进行相应的运算并打印出结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-9 22:24:24 | 显示全部楼层
人造人 发表于 2016-6-9 21:37
用字母后的数据进行相应的运算并打印出结果

当输入的是X或Z时直接打印,比如输入X20.03就打印出X20.03,后面一行再输入个U10,,第一行依然输出X20.03,第二行就把它们相加输出X30.03,这样能看明白么~因为我是数控车操作工,这个其实就是最简单的程序中的两段,把增量转化成绝对值输出,我是希望用C语言实现简单输入尺寸数据,通过较复杂的运算将计算结果打印出来~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-10 18:57:54 | 显示全部楼层
本帖最后由 人造人 于 2016-6-10 19:00 编辑

我还是不了解题目,以下代码实现了部分功能

我简单解释一下
在main函数中一直循环输入,数据存放在 char buff[BUFF_COUNT][BUFF_MAX];
当输入是Q时,执行计算,完成后复位 buff_count,进行下一次计算

calc 函数中把结果打印出来
用atof 函数把字符串转换成 double
strncmp 比较字符串前面的字母

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>

  4. #define BUFF_MAX 10
  5. #define BUFF_COUNT 20

  6. void calc(void);

  7. char buff[BUFF_COUNT][BUFF_MAX];
  8. int buff_count = 0;

  9. int main(void)
  10. {

  11.         while(1)
  12.         {

  13.                 if(buff_count >= BUFF_MAX) exit(1); // 超出缓冲区,退出
  14.                 printf("请输入:");
  15.                 fgets(buff[buff_count++], BUFF_MAX, stdin);

  16.                 if(strncmp(buff[buff_count - 1], "Q", 1) == 0)
  17.                 {
  18.                         calc();
  19.                         buff_count = 0; // 复位
  20.                 }

  21.         }

  22.         return 0;
  23. }

  24. void calc(void)
  25. {
  26.         int i;
  27.         double value;

  28.         for(i = 0; i < buff_count; i++)
  29.         {

  30.                 if(strncmp(buff[i], "X", 1) == 0)
  31.                 {
  32.                         char *p = buff[i];

  33.                         printf("%lf\n", atof(++p)); // ++p 后,指向字母后面的值
  34.                 }
  35.                 else if(strncmp(buff[i], "Z", 1) == 0)
  36.                 {
  37.                         char *p = buff[i];

  38.                         printf("%lf\n", atof(++p));
  39.                 }
  40.                 else if(strncmp(buff[i], "U", 1) == 0)
  41.                 {

  42.                 }
  43.                 else if(strncmp(buff[i], "W", 1) == 0)
  44.                 {

  45.                 }
  46.                 else if(strncmp(buff[i], "Q", 1) == 0) // 这里是最后输入的 Q
  47.                 {

  48.                 }
  49.                 else
  50.                 {
  51.                         printf("error\n");
  52.                 }
  53.         }
  54. }
复制代码


$ ./a.out
请输入:Q
请输入:X123.12
请输入:Z45.35
请输入:X45.01
请输入:X
请输入:45
请输入:Z
请输入:Q
123.120000
45.350000
45.010000
0.000000
error
0.000000
请输入:45
请输入:Z78
请输入:X45.3
请输入:bcd
请输入:Q
error
78.000000
45.300000
error
请输入:

评分

参与人数 1荣誉 +1 鱼币 +5 贡献 +1 收起 理由
晚起鸟儿 + 1 + 5 + 1 虽然不是我想要的,谢谢您的帮助

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-12 07:37:01 | 显示全部楼层

回帖奖励 +5 鱼币

麻烦师兄帮忙看看 悬赏问题 里这个 Vbox 增强工具箱安装失败问题

Stopping VirtualBox Additions  [FAILED]  这个鬼

3Q

评分

参与人数 1鱼币 -5 收起 理由
晚起鸟儿 -5 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-16 13:27:57 | 显示全部楼层

回帖奖励 +5 鱼币

看看,学习下

评分

参与人数 1鱼币 -5 收起 理由
晚起鸟儿 -5 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-16 13:28:41 | 显示全部楼层
拿点鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-27 21:29:48 | 显示全部楼层

回帖奖励 +5 鱼币

评分

参与人数 1鱼币 -5 收起 理由
晚起鸟儿 -5 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-28 10:16:34 | 显示全部楼层

回帖奖励 +5 鱼币

学习

评分

参与人数 1鱼币 -5 收起 理由
晚起鸟儿 -5 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-28 12:13:26 | 显示全部楼层

回帖奖励 +5 鱼币

我来看看

评分

参与人数 1鱼币 -3 收起 理由
晚起鸟儿 -3 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-15 10:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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