用C语言解题-二维数组只告诉了行数如何输入

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

例题:

在 ​​M​​​ 国有着很多的城市群,我们可以用二维数组中的 ​​1​​​ 去表示高层建筑,矩阵的每一行代表一个区域,在下列示例中我们统计出每行矩阵是否有高层建筑,矩阵中有高层建筑的区域总和为 ​​3​​​,分别是第 ​​1​​​,​​3​​​,​​4​​ 行。

"1" "0" "0" "0"
"0" "0" "0" "0"
"1" "1" "0" "0"
"1" "1" "1" "0"

创建一个函数,输入一个(​​0​​ 和 ​​1​​ 的二维列表)并返回矩阵中有高层建筑的区域总和。

输入输出格式

输入格式 数字 ​​N​​ 表示的是 矩阵的行; 输入 ​​N​​ 行字符串,表示为二位矩阵的每一行,每个字符用一个空格隔开。 输出格式 输出的整数表示在下列矩阵中有高层建筑的区域总和。

输入输出样例1

输入​4​

"1" "0" "0" "0"
"0" "0" "0" "0"
"1" "1" "0" "0"
"1" "1" "1" "0"

输出​3​解释(可选) 请编写算法统计出矩阵中有高层建筑的区域总和。

输入输出样例2

输入

​5​

​1 1 0 1 0​

​​ ​​​1 1 0 1 0​​​ ​

​1 1 0 1 0​​​ ​

​1 1 0 1 0​​​ ​

​1 1 0 1 0​

输出

​5​


输入

​5​​​ ​

​0 0 0 0 0​​​ ​

​1 1 0 0 1​​​ ​

​1 1 1 1 1​​​ ​

​1 1 0 1 1​​​ ​

​1 1 0 1 0​

输出

​4​

说明提示

挑战者需要发掘每个矩阵的高层建筑情况。

解题代码:

#include<stdio.h>

#include<string.h>

int main ()

{

    int n,count,hang = 0,sum = 0,num,= 0;

    scanf("%d",&n);

    //printf("%d",n);

    char hhh;

    scanf("%c",&hhh);

    int x=0,z=0; 

    char ch; 

    ch=getchar(); //接收字符

    while(ch!='\n') 

    {

        if(ch>=48&&ch<=57) //依据字符ASCII值判断是否是数字

        {

            if(ch == '1')

               m = 1;

            x++;//是数字,数字个数递增

        }

        else 

            z++; //否则,其他字符个数递增

        ch=getchar(); 

    } 

    //printf("数字字符有:%d个,其它字符有:%d个",x,z); 

    int arr[x][- 1];

    for (int i = 0; i < n - 1; i++)

    {

        for (int j = 0; j < x; j++)

        {

            scanf("%d",&arr[i][j]);

        }

    }

    for (int i = 0; i < n - 1; i++)

    {

        count = 0;

        for (int j = 0; j < x; j++)

        {

            if (arr[i][j] == 1)

            {

                count = 1;

            }

        }

        if (count == 1)

        {

            sum++;

        }

    }


    printf("%d",(sum + m));

    return 0;

}

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6