本文目录一览:
- 1、怎么用c语言选择结构输出一到七开头的成语?
- 2、求c语言大佬!!帮忙做一个成语接龙的程序!急用!要求如图!
- 3、用C语言编写一个成语接龙的程序,要求如图,求大神帮忙,急急急急。。,
- 4、关于c语言成语的疑问
- 5、c语言怎么载入成语库
怎么用c语言选择结构输出一到七开头的成语?
选择结构就是if-else和switch-case结构。
这个问题说白了,就是你定义一个字符串数组,里面放一堆成语,然后循环遍历数组,判断每个字符串前两个字节是不是"一"到"七"的中文(一个汉字占两个字节)。
思路:循环取出第一个汉字,用字符串比较函数strcmp判断。
下面是演示代码:
#include stdio.h
#include string.h
int main()
{
int i,j;
char s1[7][3]={"一","二","三","四","五","六","七"};
char cn[6][9]={"欢天喜地","七窍玲珑","吉祥如意","一帆风顺","十全十美","五湖四海"},str[3]={0};
for(i=0,printf("数组中的成语有:\n");i6;printf("%s ",cn[i]),i++);
printf("\n\n其中一到七开头的成语有:\n");
for(i=0;i6;i++)
{
str[0]=cn[i][0],str[1]=cn[i][1],str[2]=0;
for(j=0;j7;j++)
if(!strcmp(str,s1[j]))
break;
if(j7) printf("%s ",cn[i]);
}
printf("\n");
return 0;
}
求c语言大佬!!帮忙做一个成语接龙的程序!急用!要求如图!
成语验证,需要将成语字典做成库,然后查询匹配,你想做自己做个库吧。
#includestdio.h
#includestring.h
typedef struct cy
{
char idiom[9];
char star[3];
char end[3];
}CY;
int main()
{
int i,meNum,cont=0;
CY cy1,cy2;
char an,menu[10][11]={"胸有成竹","一心一意","花好月圆","风和日丽","豆蔻年华","学富五车","相辅相成","先发制人","兴高采烈","自由输入"};
printf("成语接龙游戏\n");
while(1)
{
printf("请选择开头的成语,输入序号1-9,自行输入请选择0:\n");
for(i=0;i9;i++)
printf("%d、--%s\n",i+1,menu[i]);
printf("%d、--%s\n",0,menu[i]);
scanf("%d",meNum);
memset(cy1.idiom,0,9);
memset(cy1.end,0,3);
if(meNum==0)
{
printf(" 请输入开头的成语:");
scanf("%s",cy1.idiom);
}
else
strcpy(cy1.idiom,menu[meNum-1]);
cy1.end[0]=cy1.idiom[6];
cy1.end[1]=cy1.idiom[7];
cy1.end[2]=0;
printf("成语接龙开始,输入0结束\n");
printf("\n");
printf(" %s\n",cy1.idiom);
while(1)
{
printf(" --");
memset(cy2.idiom,0,9);
memset(cy2.star,0,3);
scanf("%s",cy2.idiom);
if(cy2.idiom[0]=='0' cy2.idiom[1]==0)
break;
cy2.star[0]=cy2.idiom[0];
cy2.star[1]=cy2.idiom[1];
cy2.star[2]=0;
if(strcmp(cy1.end,cy2.star))
{
printf("接龙失败!\n");
break;
}
cont++;
memset(cy1.idiom,0,9);
strcpy(cy1.idiom,cy2.idiom);
cy1.end[0]=cy1.idiom[6];
cy1.end[1]=cy1.idiom[7];
cy1.end[2]=0;
}
printf("本次接龙结束!你共完成了%d个成语的接龙\n",cont);
getchar();
while(1)
{
printf("再玩儿一次(Y/N)?");
scanf("%c",an);
if(an=='N')
return 0;
if(an=='Y')
break;
}
}
return 0;
}
用C语言编写一个成语接龙的程序,要求如图,求大神帮忙,急急急急。。,
int main()
{
char first[20] = {0};
char second[20] = {0};
char key[20] = {0};
//input
printf("please input first word:");
scanf("%s", first);
printf("please input second word:");
scanf("%s", second);
//begin
bool found = false;
for (int i = 0; i 20; i ++)
{
char tmp = first[i];
if (tmp == second[0])
{
found = true;
}
if (found == true)
{
int len = 0;
for (int l = i, j = 0; l 20, j 20; l ++, j ++)
{
if (first[l] != 0)
{
key[j] = first[l];
len ++;
}
else
break;
}
for (int j = 0; j len; j ++)
{
if (key[j] != second[j])
{
found = false;
memset(key, 0x00, sizeof(key)/sizeof(key[0]));
}
}
if (found)
printf("the max keyword is: %s \n", key);
else
printf("can not found the key word!! \n");
}
}
return 0;
}
关于c语言成语的疑问
当然会出现put a bottle in the recycling, 1 empty bottles in the bin
因为singTheSong(oneFewer); 下面有这段代码 当递归调用结束后 便会继续往下执行
至于为什么会递增
那是因为每次递归调用singTheSong后 numberOfBottles的值都会减1,递归调用结束后numberOfBottles的值为1
由于每次调用singTheSong时,下面都有printf("put a bottle in the recycling, %d empty bottles in the bin.\n",numberOfBottles);这句代码,所以递归调用多少次,这句代码就会执行多少次,在递归调用singTheSong时,numberOfBottles每次减1,所以回推时,numberOfBottles每次加1
c语言怎么载入成语库
亲您好,c语言载入成语库的操作步骤如下:
1、首先需要找到一个成语库(从网上下载即可,保存为.txt文件)
2、整体思路如下
由于要用的成语保存在文件里,一边用一边读取会降低代码的效率,所以我们首先建立一个二维动态数组,将文件里的成语读取到二维数组里。首先让用户输入第一个成语,先遍历一遍成语库里的成语,查看成语库里是否包含此成语,若不存在则默认用户输入的不是成语,输出“Your input is not a idiom”,程序结束。如果成语库有该成语,则电脑从成语库里接出下一个成语,然后再由用户接成语,循环往复,一直到用户接的成语最后一字成语库里没有以该字开头的成语,则输出:“YOU WIN!”,程序结束;如果用户接不出电脑输出的成语,则输出:“You fail!”