| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:真心请教一下思路,谢谢啦=^=
只看楼主 加入收藏
ghosthacker
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-7-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
真心请教一下思路,谢谢啦=^=
从键盘输入两个小于100的整数A和B,计算A与B两数的基本算数运算。需要注意的是:A和B的每一位数位上的数字由对应的英文单词给出。

系统要求:

(1)系统由菜单做导航,给出输入数据功能、退出程序功能、数据输入功能并能够循环输入执行运算等。

(2)在数据运算输入功能菜单下分别给出A与B的相加运算、A与B的相乘运算、A与B的相减运算、A与B的相除运算、A与B的相除取于运算等功能。

(3)当A输入为zero,同时B输入为zero时自动返回菜单上一级。

输入样例:

one + two =

three four + five six =

zero seven + eight nine =

zero + zero =

输出样例:

one + two = three

three four + five six = nine zero

zero seven + eight nine = nine six
搜索更多相关主题的帖子: 键盘 英文单词 
2015-07-08 12:21
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
。。你这就是计算器啊,
你这个感觉和计算器差不多,不同的输入的不是阿拉伯数字,是英文
能不能弄个把英文zero--nine转换或对应到0-9,然后再直接数字运算,输出的时候再转换回英文字符呢。
我也是个新手,想当然的话不要见笑
2015-07-08 14:36
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
弄两个数组,一个存英文字符,一个存数字,然后弄指针指向11对应。。不知道行不行,我纯属瞎想。。行不行不知道啊。。
2015-07-08 14:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
回复 2楼 wanglianyi1
可以

授人以渔,不授人以鱼。
2015-07-08 14:45
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:7 
回复 4楼 TonyDeng
嗯,谢谢
2015-07-09 10:02
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:7 
在TC2.0下写了一个,显示了中间过程。看看有没有帮助,可以更优化,自己完善。
程序代码:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
main()

 { char *n[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
   int c1=0,c2=0,sum;
   char *s,*p1,*p2;
   char *temp;
   char data1[50],data2[50];
   int i,j;
   char output[10];

   system("cls");
   gets(s);
   printf("Source string is:%s\n",s);
   p1=strtok(s,"+");
   printf("Left of '+' is: %s\n",p1);
   p2=strtok(NULL,"=");
   printf("Betwwen of '+' and '=' is: %s\n",p2);

   for(i=0;i<=9;i++)
    { temp=strstr(p1,n[i]);
      while(temp)
    { *temp=i+'0';
      for(j=1;j<=strlen(n[i])-1;j++)
        *(temp+j)=' ';
      temp=strstr(p1,n[i]);
    }
     }
   for(i=0;i<=9;i++)
    { temp=strstr(p2,n[i]);
      while(temp)
    { *temp=i+'0';
      for(j=1;j<=strlen(n[i])-1;j++)
        *(temp+j)=' ';
      temp=strstr(p2,n[i]);
    }
    }
   printf("Expression is:%s+%s\n",p1,p2);
   strcpy(data1,p1);
   strcpy(data2,p2);
   printf("data1 is %s\n",data1);
   printf("data2 is %s\n",data2);
   j=0;
   for (i=strlen(data1)-1;i>=0;i--)
     {
      if (isdigit(data1[i]))
       { c1=c1+(data1[i]-'0')*pow(10,j);
     j++;
       }
     }

   j=0;
   for(i=strlen(data2)-1;i>=0;i--)
     {
      if (isdigit(data2[i]))
       { c2=c2+(data2[i]-'0')*pow(10,j);
     j++;
       }
     }

   sum=c1+c2;
   printf("%d+%d=%d\n",c1,c2,sum);

   itoa(sum,output,10);

   printf("output is %s\n",output);
   i=strlen(output);
   for(j=0;j<=i-1;j++)
    { printf("%s ",n[output[j]-'0']);
    }
   getch();


 }




[ 本帖最后由 lianyicq 于 2015-7-9 16:17 编辑 ]

大开眼界
2015-07-09 15:37
快速回复:真心请教一下思路,谢谢啦=^=
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047420 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved