我是一个全新的C编程新手,我遇到了一些问题。
我正在尝试创建一个单词搜索,但是我遇到了一个问题。https://en.wikipedia.org/wiki/Word_search
我正在尝试随机化一个数字,这样包含单词的数组将是随机的。srand在我添加决策或任何其他代码片段之前工作。
我之所以使用switch case,是因为我在使用else if时遇到了问题。
代码如下:
#include <stdio.h>
#include<string.h>
#include <time.h>
#define ARRAY_SIZE 10
int main (void)
{
int r;
srand(time(NULL));
r = (rand() % 3) + 1 ; //random number
printf ("%d\n", r);
char *names1[]= {"DOG" , "CAT", "HORSE" , "SNAKE" };
char *names2[]= {"RAT", "FOX", "FISH", "DRAGON" };
char *names3[]= { "TIGER", "COW", "SHARK", "BEAR" };
switch(r)
{
case '1' : printf (" %s", names1);
break;
case '2' : printf (" %s", names2);
break;
case '3' : printf (" %s", names3);
break;
default : puts ("Invalid");
getchar();
return 0;
}发布于 2015-11-24 02:22:09
'1'不是同一个1。将您的case '1':更改为case 1:
和
case '1' : printf (" %s", names1); 至
case 1 : printf (" %s", names1[r]); 其他case语句中的类似更改。
发布于 2015-11-24 02:52:19
我已经解决了这个问题。谢谢你所有的答案。对于有同样问题的人,这是一个完整的工作程序。
#include <stdio.h>
#include<string.h>
#include <time.h>
#define ARRAY_SIZE 10
int main (void)
{
int l;
int r;
char *names1[]= {"DOG" , "CAT", "HORSE" , "SNAKE" };
char *names2[]= {"RAT", "FOX", "FISH", "DRAGON" };
char *names3[]= { "TIGER", "COW", "SHARK", "BEAR" };
srand(time(NULL));
r = (rand() % 3) + 1 ; //random number
switch(r)
{
case 1 :
for (l = 0; l <4; l++ )
{
printf (" %s", names1[l]);
}
break;
case 2 :
for (l = 0; l <4; l++ )
{
printf (" %s", names2[l]);
}
break;
case 3 :
for (l = 0; l <4; l++ )
{
printf (" %s", names3[l]);
}
break;
default : puts ("Invalid");
}
getchar();
return 0;
}
https://stackoverflow.com/questions/33877802
复制相似问题