大虾看看我的代码 老出错 求正解 给高分 急急急急急急急急:问题是C语言关键字中英翻译机

#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>intEN();intCN()... #include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>

int EN();
int CN();
void main()
{
char a[]="1";
char b[]="2";
char d[]="bye";

char ch;

printf("**************************************\n");
printf(" 欢迎使用C语言关键字中英翻译机\n");
printf("**************************************\n");

printf("1.通过输入英文来查找\n");
printf("2.通过输入中文意思来查找\n");
printf(" 输入bye退出程序\n\n\n\n");
do{

ch=getch();
switch(ch)
{
case '1':int EN(int n);break;
case '2':int CN(int n);break;
case 'bye':exit(0);break;
default: ;

}
}while(1);

}
int EN()
{

char r[20] ;
int s; int n=34;
struct word//词库
{
char key[20];
char mean[80];
}word[1000]={{"auto","声明自动变量"},
{"double","声明双精度变量或函数"},
{"int","基本整形"},
{"struct","声明结构体变量或函数"},
{"break","跳出当前循环"},
{"else","条件语句否定分支(与if 连用)"},

};;

printf("\n请输入要查找的关键字的英文:\n");
scanf("%s",r);
for(s=0;s<=n;s++)

{
if(s<=n-1)
if(strcmp(word[s].key,r)==0)
break;
else
continue;
else
if(strcmp(word[n].key,r)==0)
break;

else
{

printf("\n抱歉,词库中没有收入此关键字");
printf("\n关键字:%s", word[s].key);
printf("\n关键字含义:%s", word[s].mean);

return 0;

}
int CN()
{

char r[20] ;
int s; int n=34;
struct word//词库
{
char key[20];
char mean[80];
}word[1000]={{"auto","声明自动变量"},
{"double","声明双精度变量或函数"},
{"int","基本整形"},
{"struct","声明结构体变量或函数"},
{"break","跳出当前循环"},

};;

printf("\n请输入要查找的关键字的中文:\n");
scanf("%s",r);
for(s=0;s<=n;s++)

{
if(s<=n-1)
if(strcmp(word[s].mean,r)==0)
break;
else
continue;
else
if(strcmp(word[n].mean,r)==0)
break;

else
{

printf("\n抱歉,词库中没有收入此关键字");
printf("\n关键字:%s", word[s].mean);
printf("\n关键字含义:%s", word[s].key);

return 0;

}
如有正解 给另给高分 感激不尽啊
展开
 我来答
辰星落羽
2010-12-19 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:131万
展开全部
可以了。
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>

int EN();
int CN();
void main()
{
char a[]="1";
char b[]="2";
char d[]="bye";

char ch;

printf("**************************************\n");
printf(" 欢迎使用C语言关键字中英翻译机\n");
printf("**************************************\n");

printf("1.通过输入英文来查找\n");
printf("2.通过输入中文意思来查找\n");
printf(" 输入b退出程序\n\n\n\n");
do{

ch=getch();
switch(ch)
{
case '1':EN();break;
case '2':CN();break;
case 'b':exit(0);break; //单引号中内容不可为字符串
default: ;

}
}while(1);

}
int EN()
{

char r[20] ;
int s; int n=34;
struct word//词库
{
char key[20];
char mean[80];
}word[1000]={{"auto","声明自动变量"},
{"double","声明双精度变量或函数"},
{"int","基本整形"},
{"struct","声明结构体变量或函数"},
{"break","跳出当前循环"},
{"else","条件语句否定分支(与if 连用)"},};

printf("\n请输入要查找的关键字的英文:\n");
scanf("%s",r);
for(s=0;s<=n;s++){
if(s<=n-1)
if(strcmp(word[s].key,r)==0)
break;
else
continue;
else
if(strcmp(word[n].key,r)==0)
break;
else
{
printf("\n抱歉,词库中没有收入此关键字");
}
}
printf("\n关键字:%s", word[s].key);
printf("\n关键字含义:%s\n", word[s].mean);

return 0;

}
int CN(){
char r[20] ;
int s;
int n=34;
struct word//词库
{
char key[20];
char mean[80];
}word[1000]={{"auto","声明自动变量"},
{"double","声明双精度变量或函数"},
{"int","基本整形"},
{"struct","声明结构体变量或函数"},
{"break","跳出当前循环"},}; //多了一个分号

printf("\n请输入要查找的关键字的中文:\n");
scanf("%s",r);
for(s=0;s<=n;s++)
{
if(s<=n-1)
if(strcmp(word[s].mean,r)==0)
break;
else
continue;
else
if(strcmp(word[n].mean,r)==0)
break;

else
{
printf("\n抱歉,词库中没有收入此关键字");
}
}
printf("\n关键字:%s", word[s].mean);
printf("\n关键字含义:%s", word[s].key);

return 0;
}
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
labikkkk
2010-12-19 · TA获得超过383个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:199万
展开全部
先不说你的程序能不能完成你的目的。我大略一看就发现两个错误。你先改这俩吧
1 你的ch 定义的是char 型的。而 switch中 一个case 分支确实 字符串 bye 用来退出的。这么做对吗? 再者说,定义成字符串类型的后也不能只用='1' 这种形式。那是字符串,不是字符。要用strcmp 函数来比较的。 你在switch 的条件里就应该写成这个。如果不会看看基础去。
2 你程序开头声明的两个函数是没有参数的,你case 里却是传递了int 型的变量。这么做也不对吧?写函数的时候也没有参数,没有参数你传值能对吗?
先改这两个吧,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式