C语言问题,新手,请大神指导一下!关于数组
主要想实现用户输入的词语是不是数组里的,不是就重新输入,求大神看下,哪里不对,代码如下:#include<string.h>intmain(){inti;charname...
主要想实现用户输入的词语是不是数组里的,不是就重新输入,求大神看下,哪里不对,
代码如下:
#include <string.h>
int main()
{
int i;
char names[5][20] = {"唧唧","渣渣","哦哦","呵呵","哈哈"};
char tempnames[20];
for(; ;)
{
printf("请输入:\n");
scanf("%s",tempnames);
if(strcmp(tempnames,names[i]) == 0)
{
printf("选择的是%s",tempnames);
}
else
{
printf("在数组未找到该词语!\n");
}
}
return 0;
} 展开
代码如下:
#include <string.h>
int main()
{
int i;
char names[5][20] = {"唧唧","渣渣","哦哦","呵呵","哈哈"};
char tempnames[20];
for(; ;)
{
printf("请输入:\n");
scanf("%s",tempnames);
if(strcmp(tempnames,names[i]) == 0)
{
printf("选择的是%s",tempnames);
}
else
{
printf("在数组未找到该词语!\n");
}
}
return 0;
} 展开
2个回答
展开全部
for循环没有条件,程序死循环了
i是个未初始化的变量,不可以这样用,要先初始化
比较字符串,不是光比较1个,要5个都比较,
我帮你把程序改改啊
int main()
{
int i , a ;
char names[5][20] = {"唧唧","渣渣","哦哦","呵呵","哈哈"};
char tempnames[20];
while(1)
{
printf("请输入:\n");
scanf("%s",tempnames);
if( strcmp(tempnames,"exit") == 0 )
break ;
a = 0 ;
for( i = 0 ; i < 5 ; i ++ )
{
if(strcmp(tempnames,names[i]) == 0)
{
a = 1 ;
break ;
}
}
if( a )
printf("选择的是%s",tempnames);
else
printf("在数组未找到该词语!\n");
}
return 0;
}
追问
非常感谢,不过因为是新手,有些地方不太懂,像是a的作用,还有if(a)是什么意思,可以麻烦解释一下吗
展开全部
scanf("%s",tempnames); //这句后边加一句
getchar(); // 读走最后按下的回车
追问
谢谢,不过加了貌似还是不行哎
追答
int main() {
int i;
char names[5][20] = {"唧唧", "渣渣", "哦哦", "呵呵", "哈哈"};
char tempnames[20];
for (;;) {
printf("请输入:\n");
scanf("%s", tempnames);
getchar();
for (i = 0; i < 5; ++i) {
if (strcmp(tempnames, names[i]) == 0) {
break;
}
}
if (i == 5) {
printf("在数组未找到该词语!\n");
} else {
printf("选择的是%s", tempnames);
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询