点阵数据压缩

点赞数组

导图

  1. 规矩介绍
  2. 输出要求
  3. 计算设计
  4. 代码实现

 

1>规则介绍

规则:任意一个NxN的矩阵输入数据在其中,从第一行第一个数据开始计算(顺序:从上到下,从左到右)

 

2>输出要求

输出:

  1. 首先输出矩阵的阶数
  2. 第一个数据表示连续几个零第二个数据连续几个一第三个数据连续几个零第四个数据连续几个一,以此类推继续直到点阵输出结束。

3>计算设计

矩阵数据数量=NxN=输出数量之和

分析:按照输出要求我们需遍历整个数组,然后按照要求去进行判断输出直到结束。

如果使用c++会更加方便,我们习惯于将二维矩阵表达成一维数组(所有数据写在一行内),这样直观去阅读和使用。

C++可以定义字符串类型(string s)可以使用拼接就可以将二维变成一维的数组进行使用

例如:

string s,s1;

cin>>s1;s=s1+s;s1++;控制变量矩阵的阶数即可

但是c语言是不可以进行字符串的拼接,因为系风格以字符串数组的形式来存储字符串的没有字符串类型。这里使用c语言进行输出操作

4>代码实现


	int array[7][7] = {
		{0,0,0,1,0,0,0},
		{0,0,0,1,0,0,0},
		{0,0,0,1,1,1,1},
		{0,0,0,1,0,0,0},
	    {0,0,0,1,0,0,0},
		{0,0,0,1,0,0,0},
		{1,1,1,1,1,1,1}
	};
	printf("点阵如下\n");
	for (int i = 0; i <7; i++)
	{
		for (int j = 0; j <7; j++)
		{
			printf("%d ",array[i ][j]);
			if (j == 6)
				printf("\n");
		}
	}

int number = 1;
	for (int i = 0; i <= 6; i++)
	{
		for (int j = 0; j <= 6; j++)
		{
			if (array[i][j] == array[i][j + 1])
			{
				number++;
			}
			else
			{
				printf("%d ", number);
				number = 1;
			}
		}
	}

猜你喜欢

转载自blog.csdn.net/qq_46861651/article/details/113419391