C语言找不到方法去解决布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数.如下面这个4*4的矩阵就具有奇偶性:1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序,读入一个n阶方阵并检查它是
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 21:35:11
![C语言找不到方法去解决布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数.如下面这个4*4的矩阵就具有奇偶性:1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序,读入一个n阶方阵并检查它是](/uploads/image/z/5167169-17-9.jpg?t=C%E8%AF%AD%E8%A8%80%E6%89%BE%E4%B8%8D%E5%88%B0%E6%96%B9%E6%B3%95%E5%8E%BB%E8%A7%A3%E5%86%B3%E5%B8%83%E5%B0%94%E7%9F%A9%E9%98%B5%E6%9C%89%E4%B8%80%E7%A7%8D%E5%A5%87%E5%81%B6%E6%80%A7%2C%E5%8D%B3%E8%AF%A5%E7%9F%A9%E9%98%B5%E6%89%80%E6%9C%89%E8%A1%8C%E5%92%8C%E6%89%80%E6%9C%89%E5%88%97%E7%9A%84%E5%92%8C%E9%83%BD%E6%98%AF%E4%B8%80%E4%B8%AA%E5%81%B6%E6%95%B0.%E5%A6%82%E4%B8%8B%E9%9D%A2%E8%BF%99%E4%B8%AA4%2A4%E7%9A%84%E7%9F%A9%E9%98%B5%E5%B0%B1%E5%85%B7%E6%9C%89%E5%A5%87%E5%81%B6%E6%80%A7%EF%BC%9A1+0+1+0+0+0+0+0+1+1+1+1+0+1+0+1+%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F%2C%E8%AF%BB%E5%85%A5%E4%B8%80%E4%B8%AAn%E9%98%B6%E6%96%B9%E9%98%B5%E5%B9%B6%E6%A3%80%E6%9F%A5%E5%AE%83%E6%98%AF)
C语言找不到方法去解决布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数.如下面这个4*4的矩阵就具有奇偶性:1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序,读入一个n阶方阵并检查它是
C语言找不到方法去解决
布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数.如下面这个4*4的矩阵就具有奇偶性:1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序,读入一个n阶方阵并检查它是否是布尔矩阵.如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0改为1,把1改为0)来使它为布尔矩阵,如果不可能,这个矩阵就被认为是破坏了.
输入
第一行是一个整数n ( 0< n < 100 ),代表该矩阵的阶数.然后输入n 行,每行n个整数(0或1).
输出
如果矩阵是布尔矩阵,输出“OK”;如果能通过只修改该矩阵中的一位来使它成为布尔矩阵,则输出“Change bit(i,j)”,这里i和j是被修改的元素的行与列(行,列号从0开始),否则,输出“Corrupt”.
样例输入
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
样例输出
OK
下面是我不完整的思路
#include
int main()
{
\x05int a[10][10],r[10],c[10],wz[10]={0};
\x05int i,j,n;
\x05int sum=0,count=0;
\x05while(scanf("%d",&n)!=EOF){
\x05for(i=0;i
C语言找不到方法去解决布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是一个偶数.如下面这个4*4的矩阵就具有奇偶性:1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序,读入一个n阶方阵并检查它是
给你个思路吧
检查奇偶性很简单吧 计算每行每列的和判断就行
比较复杂的是修改一位就可以变成布尔矩阵
由于布尔矩阵只有0/1两种元素 所以改变一个元素 会同时改变它所在行和列的和
这样如果可以通过改变一位变成布尔矩阵,那就要求有且只有一行和一列和是奇数 其他的都是偶数
需要改变的就是奇数这一行和列交汇点
所以可以在第一步校验时保存下奇数行的个数,以及第一个奇数行的行号,奇数列的个数,以及奇数列的列号
然后判断 如果奇数行个数和偶数行个数都是1 那么输出对应行列号
否则就是Corrupt