点赞数组
导图
- 规矩介绍
- 输出要求
- 计算设计
- 代码实现
1>规则介绍
规则:任意一个NxN的矩阵输入数据在其中,从第一行第一个数据开始计算(顺序:从上到下,从左到右)
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;
}
}
}