通用版1.E - A + B

xiaoxiao2021-02-28  58

#include <stdio.h> #include <string.h> int main() { int i=0,j,u,v,a,b,n; char s[10][15],f[150]; int mark[10]; strcpy(s[0],"zero"); strcpy(s[1],"one"); strcpy(s[2],"two"); strcpy(s[3],"three"); strcpy(s[4],"four"); strcpy(s[5],"five"); strcpy(s[6],"six"); strcpy(s[7],"seven"); strcpy(s[8],"eight"); strcpy(s[9],"nine"); while(gets(f)){ if(strcmp(f,"zero + zero =")==0)break; n=strlen(f); u=0; a=b=0; int k=0; for(i=0;i<=n-1;i++){ char st[15]; if(f[i]!=' '&&f[i]!='=')st[k++]=f[i]; else { st[k++]='\0'; k=0; for(v=0;v<=9;v++){ if(strcmp(st,s[v])==0){ mark[u++]=v; //printf("%d,,",i); //printf("%d,",v); // puts(s[v]); } } } if(f[i]=='+')mark[u++]=120; } for(i=0;i<=u-1;i++){ // printf("%d ",mark[i]); if(mark[i]!=120)a=a*10+mark[i]; else { break; } } for(j=i+1;j<=u-1;j++){ if(mark[j]==120)continue; b=b*10+mark[j]; //printf("%d ",mark[j]); } printf("%d\n",a+b); } return 0; }

将数字的英文形式存在一个二维数组s中,与数组的下标对应

将计算式读入数组f,遍历,碰到一个空格就开始处理,用一个临时数组st存储读入的单词,然后与s中的单词进行比较,找到后就记录

转载请注明原文地址: https://www.6miu.com/read-2619283.html

最新回复(0)