从键盘输入两个小于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 = threethree four + five six = nine zerozero seven + eight nine = nine six
输入输出样例看的一头雾水,你就不能换个行
char num[10][10] = {"zero","one","two","three","four","five","six","seven","eight","nine"};
void showmenu()
{
printf(" 数据运算功能\n\n");
printf(" 1、两数相加\n");
printf(" 2、两数相减\n");
printf(" 3、两数相乘\n");
printf(" 4、两数相除\n");
printf(" 5、两数求余\n");
printf(" 0、退出程序\n\n");
printf(" 请输入您的选择:");
}
bool charton(char *s,int &n)
{
for(int i=0;i<10;i++)
{
if(strcmp(num[i],s) == 0)
{
n=i;
return true;
}
}
return false;
}
bool charston(char *s,int &n)
{
char c1[10] = {0};
char c2[10] = {0};
char *p = c1;
int pos = 0;
bool bp2 = false;
for(int i=0;s[i] !=0;i++)
{
if(s[i] != ' ')
p[pos++] = s[i];
else
{
if(bp2)
break;
else if(strlen(p) > 0)
{
pos = 0;
p = c2;
bp2 = true;
}
}
}
if(strlen(c2) > 0)
{
int m;
if(charton(c2,m))
n=m;
else
return false;
if(charton(c1,m))
n+=m*10;
else
return false;
}
else if(strlen(c1) > 0)
{
if(!charton(c1,n))
return false;
}
else
return false;
return true;
}
int main()
{
while(1)
{
system("cls");
showmenu();
int sel;
scanf("%d",&sel);
if(sel == 0)
exit(0);
char d1[20] = {0};
char d2[20] = {0};
printf("请输入第一个数:");
scanf("%[^\n]",d1);
getchar();
int n,m;
if(!charston(d1,n))
{
printf("输入错误,重来!\n");
continue;
}
printf("请输入第二个数:");
scanf("%[^\n]",d2);
getchar();
if(!charston(d2,m))
{
printf("输入错误,重来!\n");
continue;
}
switch(sel)
{
case 1:
{
n = n+m;
printf("%s + %s = ",d1,d2);
}
break;
case 2:
{
n = n-m;
printf("%s - %s = ",d1,d2);
}
break;
case 3:
{
n = n*m;
printf("%s * %s = ",d1,d2);
}
break;
case 4:
{
n = n/m;
printf("%s / %s = ",d1,d2);
}
break;
case 5:
{
n = n%m;
printf("%s % %s = ",d1,d2);
}
break;
default:
continue;
}
printf("%s %s\n",num[n/10],num[n%10]);
}
return 0;
}