c-srand和决策问题



我对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;
}

最新更新