C语言求帮助
输入两个数码的英文,求其和值。Sample Input
5
zero one
two three
four five
six seven
eight nine
Sample Output
1
5
9
13
17
只需要思路就好 这样可以吗
#include<stdio.h>
#include <string.h>
typedef struct
{
char string ;
char value;
} TAB;
void dispose_string (TAB tab[], //需要tab的地址
char *a, char *b, //a b 字符串的地址
int *x, int *y); //x y 为返回的对应的数字
int main()
{
TAB tab = {{ "zero", 0 }, { "one", 1 }, { "two", 2 },{ "three", 3 } ,{ "four", 4 } ,{ "five", 5 } ,{ "six", 6 } ,{ "seven", 7 } ,{ "eight", 8 } ,{ "nine", 9 } };
char a, b; //加数和被加数
int x = 0, y = 0; //转换后的加数和被加数
printf ("请输入:");
scanf ("%s %s", &a, &b);
//这里应该检查a b的值
dispose_string (tab, a, b, &x, &y);
printf ("%s和%s的和为:%d\n", a, b, x + y);
return(0);
}
void dispose_string(TAB tab[], //需要tab的地址
char *a, char *b, //a b 字符串的地址
int *x, int *y) //x y 为返回的对应的数字
{
int i, k;
for (i = 0; i < 10; i++)
{
if (strcmp (tab.string,a) == 0)
{
*x = tab.value;
}
}//应该处理一下没有找到的情况
for (k = 0; k < 10; k++)
{
if (strcmp(tab.string, b) == 0)
{
*y = tab.value;
}
}
} 只有10以内的吗?10以内的话就用map映射一下就好了 真6 ,谢谢你,不过以后思路就可以啦{:10_279:} 全部宏定义不就完了
页:
[1]