如果检查列只有数字1,则矩阵行和列不相等

  • 本文关键字:不相等 数字 如果 c++ algorithm
  • 更新时间 :
  • 英文 :


我必须检查矩阵中每一列等于1的元素的行和列是否不相等。当我尝试所有解决方案时,它对row==column有效。我试着对每列求和,然后检查它是否等于6行,因为我希望列中的所有元素都等于1。

这是我的输入和输出任务的屏幕截图:任务在这里作为图片

任务描述

在列车时刻表中,列车的路线由一系列位描述(1–如果列车停在车站,0–如果不停在车站(
编写一个程序,给出所有列车停止时只有这些位为1的位序列。

输入

标准输入的第一行包含列车计数(1≤T≤100(站数(1≤S≤100(。接下来的T行包含表示每列列车路线的序列:由空格分隔的S位,其中1表示列车(行(停在给定的车站(列t(,0表示列车不停车。

输出

标准输出的第一行应包含由空格分隔的S比特的序列,其中1表示所有列车停止,0表示并非所有列车都停了下来。

示例

输入

6 8
1 1 1 1 1 1 0 1 
1 0 0 0 1 1 0 1 
1 0 0 0 1 0 0 0 
1 1 1 0 1 0 0 0 
1 1 0 1 1 0 0 1 
1 1 1 0 1 0 0 1

输出

1 0 0 0 1 0 0 0

这是我在C++中的代码:

#include <iostream>
#include <climits>
using namespace std;

int main()
{
int n,m;
cin>>n>>m;
int trainStops[n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cin>>trainStops[i][j];
}
}
int sum =0;
int output[m]={0};
for (int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
if(trainStops[j][i]==1){
output[j]+=trainStops[j][i];
}
}
}
cout<<"==============="<<endl;
for(int i=0; i<m; i++)
{
cout<<output[i]<<" ";
}
return 0;
}

如果有其他方式我有兴趣提前知道谢谢,这就是我解决问题的方法。

#include <iostream>
#include <climits>
using namespace std;

int main()
{
int n,m;
cin>>n>>m;
int trainStops[n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cin>>trainStops[i][j];
}
}
int sum =0;
int output[m]={0};
for (int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
output[i]+=trainStops[j][i];
}
}
for(int i=0; i<m; i++)
{
if(output[i]==n){
cout<<1<<" ";
}
else{
cout<<0<<" ";
}
}
cout<<endl;
return 0;
}

最新更新