C. 二维数组填字游戏类程序

标签 c function multidimensional-array

我创建了一个 20 行 30 列的二维字符数组(在 main( ) 中完成)。然后,我用随机大写字符填充 2D 数组的每个元素,并将该 2D 字符数组显示到屏幕上(在名为 function1( ) 的函数中完成)。

我现在尝试创建一个名为 function2 的函数,它将遍历数组寻找水平字符对。我是编码新手,不确定实现这一目标的可能方法。完成这项任务的最佳方法是什么?

(注:连续三个相同的字符将计为 2 对。连续四个相同的字符将计为 3 对,以此类推)

#include <stdio.h> 
#include <stdlib.h>
#include <time.h> 

#define ROW 20
#define COLUMN 30

char function1 ( char [ROW] [COLUMN]) ;


int main( void )
{  

char randchar_array [ROW] [COLUMN]; 
srandom ( (unsigned) time (NULL) ); 

printf( "\n Welcome User.\n\n" ) ;

function1 (randchar_array);

printf("\n\n Thank you for using this program.\n\n" ) ;


return ( 0 ) ;

}

char function1 (char randchar_array[ROW] [COLUMN]) 

{
int r = 0 ;
int c = 0 ;
char nextchar = 'A';

   for (r = 0; r < ROW ; r++)
   {
       for (c = 0; c < COLUMN ; c++)
       {
          nextchar = 'A' + random() % 26;
          randchar_array [r] [c] = nextchar;
          printf(" %c", nextchar);
       }

      printf("\n");
    }

   return (randchar_array [ROW] [COLUMN]);
 }

到目前为止的输出:

 Welcome User.

 P K E J A K E F J M W V H X V S T J T C L Q K P Q R G Q Y E
 K P P R B R B F W M R U H A S E S N Q N R B D C Q T T Z J U
 F W J W P K N S P M F I G O K A T C O J Q F M T J D P D C A
 Z H Y I E N V T G M F N X O B H O W M E H C M U X V Z M A D
 N Z M L K S B F M H T T W Q H X A W W M A D O M Z N K Y A K
 B P K O A U I B B U K U O G N V G N T C Z W H P K J C U J E
 F L T R B W N J Z O G K K U S X R Y M N C L J M C T V H O G
 L V T F M W D Z G C P O M Z K H Z D H L Q K Z Z Y B T V K H
 B W E V D Q R G R Z I G N X H Z E G D L U T X T T V W O S H
 X U F B R I R I O K K Y S Z V Z Z B I C P E X M Z S K V G C
 E D Y J E P T X Y J H K I Z J F B I J L M Y P K M O C W L L
 B S O Z D V P X U P I C Z S D I Y G T J T F H I R T Y W S M
 H T E X U J S J I N A R R B J W M J D H S W M Z H E V H A N
 T J I Z G C J Z O R O Q K H S U D G D G N W F B X M H U T J
 J P S R Q Z W B A K V Q C F X W Z A C F J R D O T C C A X X
 K G O E A F D W G F I B V K H S J I V L P E F S U Y X W A U
 T M C I R E P U C V C K X X X E S G O N T E T Y Y N Y V J B
 R E N W O E A D B D Z D P W A O C U U S J Q W C Q X P P S Y
 S M F F I T K K X L N Y Q F W S T Y N Q S W G R Z Y O O P I
 P H U U N E P Z P O M E M C L I U F I H X B G D S F D I V T


 Thank you for using this program.

最佳答案

用于查找水平跟随字符:

char function1 (char randchar_array[ROW] [COLUMN]) 
{
   for(int i=0;i<ROW;i++)
      for(int j=0;j<COLUMN-1;j++)
          if(randchar_array[i][j] == randchar_array[i][j+1]
          {
          // Do whatever you want: sum++, return, etc.
          }
}

关于C. 二维数组填字游戏类程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755371/

相关文章:

c++ - 将数字添加到 ListView

c++ - c++函数中的通用参数?

javascript - 在 ES6 中创建的每个新实例中传递单独的作用域

c# - .NET Core Razor C# 函数

arrays - 以向量化方式将两个维度为 5 的数组相乘

c++ - 将程序集移植到 C/C++?

c# - 有人知道用 C# 编写的简单 C 解释器吗?

php - 多维数组的递归循环?

php - 如何计算多维数组的值?

c - 你知道任何 C 或其他语言的在线编译器吗?