#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define n 10
#define m 100
void yinghan(char x[n][m], char y[n][m]) //该函 数的作用是:英汉词典
{
char k[m],k1[m]={"u"}; //字符数组k[m]的作用是:保存输入的单词int i;
int i;
printf("如果要返回主菜单,输入u \n");
while(1)
{
while (1)
{
printf("请输入英语单词:");
gets(k) ;
if(strcmp(k, k1)==0) break; //如果输 入的单词为u则退出该循环
for (i=0;i<n;i++) //通过一个循环来调用存储英语单词的数组x[n] [m]中的每个单词
if (strcmp (k, x[i])==0) break; //如果数组x[n] [m]中的一个单词与输入的单词相同时则退出循环
if(i>=n) printf("抱歉,查找不到该单词\n");
else printf("%s 的意思为: %s \n",k, y[i]);
}
if(strcmp(k, k1)==0) break; //入输入的单词为u则退出该循环返回主菜单
}
}
void hanying (char x[n] [m], char y[n] [m])//该函数的作用是:汉英词典
{
char k[m], k1[m]={"u"};
int i;
printf("如果要返回主菜单,输入u \n");
while(1)
{
while(1)
{
printf("请输入汉语:");
gets(k);
if (strcmp (k, k1)==0) break;//如果输入的 单词为u则退出该循环
for(i=0;i<n;i++)//通过一个循环来调用存储汉语的数组y[n][m]中的每个
if (strcmp (k, y[i])==0) break;//如果数组y[n] [m]中的一个汉语词与输入的单词相同时则退出循环
if(i>=n) printf("抱歉,查找不到该单词\n");
else printf("%s 的意思为: %s \n" , k, x[i]);
}
if(strcmp (k, k1)==0) break;//入输 入的单词为u则退出该循环返回主菜单}
}
}
void main()
{
char k[m] ;
char
x[n][m]={"auto","break","do","else","float","double","switch","register","int"};
char y[n][m]={"自动","中断","循环体","否则","单精度","双精度","如果","开关","寄存器","整形"};
while(1)
{
printf("\t|电子词典模拟软件|\n");
printf("\t1.先选择词典:输入字母e/c选择英汉还是汉英词典\n");
printf("\t2.输入要查询的词,回车结束输入\n");
printf("\t3.输入字母u返回主菜单,重新选择词典\n");
printf("\t4.退出:主菜单下输入字母bye退出此此电子词典程序\n");printf("\t Allrightsreserve\n");
printf("输入字母e/c选择英汉还是汉英词典\n");
gets(k);
if(strcmp(k, "e")==0) yinghan(x, y); //如果输入的字符数组等于e则执行英汉词典
else if(strcmp(k, "c ")==0) hanying(x, y) ;//如果输入的字符数组等于c则执行汉英词典
else if(strcmp(k, "u")==0); //如果输入的字符数组等于u则返回主菜单
else if(strcmp(k, "bye ")==0) break; // 如果输入的字符数组等于bye则退出程序
}
}
这是代码,但是运行出来只有英翻译中,没有中翻译英,哪位可以帮忙改改呢,看一下
两个个小错误,1是判断输入命令是否为“c”这里多了个空格,另外一个是退出命令那里的“bye”多了个空格。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define n 10
#define m 100
void yinghan(char x[n][m], char y[n][m]) { //该函 数的作用是:英汉词典
char k[m],k1[m]= {"u"}; //字符数组k[m]的作用是:保存输入的单词int i;
int i;
printf("如果要返回主菜单,输入u \n");
while(1) {
while (1) {
printf("请输入英语单词:");
gets(k) ;
if(strcmp(k, k1)==0) break; //如果输 入的单词为u则退出该循环
for (i=0; i<n; i++) //通过一个循环来调用存储英语单词的数组x[n] [m]中的每个单词
if (strcmp (k, x[i])==0) break; //如果数组x[n] [m]中的一个单词与输入的单词相同时则退出循环
if(i>=n) printf("抱歉,查找不到该单词\n");
else printf("%s 的意思为: %s \n",k, y[i]);
}
if(strcmp(k, k1)==0) break; //入输入的单词为u则退出该循环返回主菜单
}
}
void hanying (char x[n] [m], char y[n] [m]) { //该函数的作用是:汉英词典
char k[m], k1[m]= {"u"};
int i;
printf("如果要返回主菜单,输入u \n");
while(1) {
while(1) {
printf("请输入汉语:");
gets(k);
if (strcmp (k, k1)==0) break;//如果输入的 单词为u则退出该循环
for(i=0; i<n; i++) //通过一个循环来调用存储汉语的数组y[n][m]中的每个
if (strcmp (k, y[i])==0) break;//如果数组y[n] [m]中的一个汉语词与输入的单词相同时则退出循环
if(i>=n) printf("抱歉,查找不到该单词\n");
else printf("%s 的意思为: %s \n" , k, x[i]);
}
if(strcmp (k, k1)==0) break;//入输 入的单词为u则退出该循环返回主菜单}
}
}
int main() {
char k[m] ;
char
x[n][m]= {"auto","break","do","else","float","double","switch","register","int"};
char y[n][m]= {"自动","中断","循环体","否则","单精度","双精度","如果","开关","寄存器","整形"};
while(1) {
printf("\t|电子词典模拟软件|\n");
printf("\t1.先选择词典:输入字母e/c选择英汉还是汉英词典\n");
printf("\t2.输入要查询的词,回车结束输入\n");
printf("\t3.输入字母u返回主菜单,重新选择词典\n");
printf("\t4.退出:主菜单下输入字母bye退出此此电子词典程序\n");
printf("\t Allrightsreserve\n");
printf("输入字母e/c选择英汉还是汉英词典\n");
gets(k);
//printf("k=%s\n",k);
if(strcmp(k, "e")==0) yinghan(x, y); //如果输入的字符数组等于e则执行英汉词典
else if(strcmp(k, "c")==0) hanying(x, y) ;//如果输入的字符数组等于c则执行汉英词典
else if(strcmp(k, "u")==0); //如果输入的字符数组等于u则返回主菜单
else if(strcmp(k, "bye")==0) break; // 如果输入的字符数组等于bye则退出程序
}
}