c语言英文字符转数字,对于输入英文数字(one+two这样)进行数学运算输出three的后续...

已结贴√

问题点数:10 回复次数:36

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

对于输入英文数字(one+two这样)进行数学运算输出three的后续

之前看了有个帖子出个了想法,就是输入英文数字进行数学运算,然后输出英文结果的题目。我自己写了下,出了点问题,运行没有错误,但是结果不正确,具体问题我提供加法部分的代码,麻烦各位看下是哪里不对

#include

#include

int main(void)

{   double  a,b,c;   //存储英文对应的运算数字

char i;          //存储运算符

int  m,n,d;     //用于取余

int ag;         //控制再次运算

int j=0,k=0;     //j对应字符数组下标,k用于循环判断对应下标

const char string[10][6]={

"zero",

"one",

"two",

"three",

"four",

"five",

"six",

"seven",

"eight",

"nine"

};

char str1[5]={"seven"};                       //存储输入的英文数字

double jiafa(double x,double y);

double jianfa(double x,double y);

double chengfa(double x,double y);

double chufa(double x,double y);

int quyu(int x,int y);

printf("这是一个十进制简单的计算器,欢迎使用\n\n");

do

{

system("cls");                     //清屏

printf("请输入 + 选择加法运算\tEnter确认\n\n");

printf("请输入 - 选择减法运算\tEnter确认\n\n");

printf("请输入 * 选择乘法运算\tEnter确认\n\n");

printf("请输入 / 选择除法运算\tEnter确认\n\n");

printf("请输入 %% 选择求余运算\tEnter确认\n\n");

printf("----------------------------------\n\n");

printf("请选择上述五种运算符后Enter,否则输入其他任意键后Enter确认退出\n\n");

scanf("%c",&i);

if(i=='0')

break;

printf("\n");

if(i=='+')

{

printf("请输入第一个数字,然后按Enter\n\n");

for(k=0;k<=5;k++)        //输入要运算的第一个英文数字

{                    //英文数字最多5个字符,故k<=5

scanf("%c",str1);

}

//        getch();

//     scanf("%lf",&a);

//        gets(str1);

for(j=0;j<10;j++)    //循环判断输入的英文字符对应数字并赋值给a

{                //此段有点问题a得到的值不正确,固定数字

if(strcmp(str1,string[j])==0)

a=j;

}

printf("a=%d",a);             //验证第一个英文数字是否对应数字

printf("\n");

printf("请输入第二个数字,然后按Enter\n\n");

for(k=0;k<=5;k++)              //输入要运算的第二个英文数字

{

scanf("%c",str1);

}

//      scanf("%lf",&b);

//      gets(str1);

for(j=0;j<10;j++)              //循环判断输入的英文字符对应数字

{

if(strcmp(str1,string[j])==0)

b=j;

}

printf("b=%d",b);            //验证第二个英文数字是否对应数字

printf("\n");

c=jiafa(a,b);                //调用加法函数并将结果赋值给c

for(j=0;j<10;j++)

{

if(c==j)

{

printf("%s\n",string[j]);

}

}

printf("他们的和是:%lf\n\n",c);

getchar();

printf("请输入1后Enter再次运算,或非1任意键后按Enter退出\n\n");

scanf("%d",&ag);

getchar();

printf("\n");

}

[本帖最后由 wanglianyi1 于 2015-7-20 11:55 编辑]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值