我对C编程完全陌生,遇到了一些问题。
我正在尝试创建一个Word Search,但是遇到了一个问题。https://en.wikipedia.org/wiki/Word_search
我正在尝试随机化一个数字,这样包含单词的数组将是随机的。在我添加决策或任何其他编码之前,srand会工作。
我使用开关盒是因为我在其他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 ("%dn", 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;
}
'1'
与1
不同。将您的case '1':
更改为case 1:
和
case '1' : printf (" %s", names1);
至
case 1 : printf (" %s", names1[r]);
其他案例陈述中的类似变化。
我已经解决了这个问题。谢谢你的回答。对于有同样问题的人来说,这是一个完全有效的程序。
#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;
}