用C语言解题-二维数组只告诉了行数如何输入
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
例题:
在 M
国有着很多的城市群,我们可以用二维数组中的 1
去表示高层建筑,矩阵的每一行代表一个区域,在下列示例中我们统计出每行矩阵是否有高层建筑,矩阵中有高层建筑的区域总和为 3
,分别是第 1
,3
,4
行。
创建一个函数,输入一个(0
和 1
的二维列表)并返回矩阵中有高层建筑的区域总和。
输入输出格式
输入格式
数字 N
表示的是 矩阵的行;
输入 N
行字符串,表示为二位矩阵的每一行,每个字符用一个空格隔开。
输出格式
输出的整数表示在下列矩阵中有高层建筑的区域总和。
输入输出样例1
输入
4
输出
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,m = 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][n - 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 |