c++求助02

lanseyuxiao lanseyuxiao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//怎么总是报错???求解释!
//将m*n个0和1填入一个m*n的矩阵中,形成一个数表A,
//数表中每一行数的和称为行和向量,每一列数的和叫做列和向量
//已知数表A的行数m和列数n,以及行和向量r[m]与列和向量q[n],
//求出满足条件的所有数表A
#include<iostream>
using namespace std;
const int m=3,n=4;
int r[m]={3,2,1},q[n]={2,1,1,2};
int buf[m*n],count=-1,temp[100][m*n];void swap(int,int);void output();
void trytry(int);int is_right();int is_exist();int is_same(int);
int main()
{int i,sum=0;
for(i=0;i<m;i++)
sum+=r[i];
for(i=0;i<sum;i++)
buf[i]=1;
for(i=sum;i<m*n;i++)
buf[i]=0;
trytry(0);
cout<<"综上,满足条件的数表有"<<count+1<<"个"<<endl;
return 0;
}
void trytry(int t)
{int j;
if(t>=m*n){if(is_right())output();}
else
for(j=t;j<m*n;j++)
{swap(t,j);trytry(t+1);swap(t,j);}
}
void swap(int t1,int t2)
{int t;
t=buf[t1];buf[t1]=buf[t2];buf[t2]=t;
}
int is_right()
{int i,j,sum;
for(i=0;i<n;i++)
{sum=0;
for(j=0;j<m;j++)
sum+=buf[j*n+i];
if(sum!=q[i])return 0;
}
for(i=0;i<m;i++)
{sum=0;
for(j=0;j<n;j++)
sum+=buf[i*n+j];
if(sum!=r[i])return 0;
}
return 1;
}
void output()
{int i,j;
if(is_exist()==0)
{count++;
cout<<"第"<<count+1<<"组解如下:"<<endl;
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{cout<<buf[i*n+j]<<" ";
temp[count][i*n+j]=buf[i*n+j];
}
cout<<endl;
}
}
}
int is_exist()
{int i,j;
if(count==-1)return 0;
else
{for(i=0;i<=count;i++)
if(is_same(i))return 1;
return 0;
}
int is_same(int t)
{int i;
for(i=0;i<m*n;i++)
if(temp[t][i]!=buf[i])return 0;
return 1;
}
...全文

相关推荐

cpp_d02

对于“cpp_d02”,我们可以假设它可能会涵盖这些基础到进阶的C++概念,并通过“cpp_d02-main”的代码实例来帮助学习者理解和实践。

weixin_42119358

c++ 利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 如果有 Python 开发经验的同学,可能知道用 Python 读取 yaml 是再简单不过了,但是 C++ 麻烦一点,它需要你自己下载源码然后编译

东风笑西风

C++ .h和.cpp文件总结

"这篇文档是关于C++编程中头文件(.h)和源文件(.cpp)的使用总结,旨在帮助新手理解两者的区别和作用。文档提到了头文件通常用于声明类型、函数和宏常量,而源文件则用于实现函数和定义变量。作者探讨

奔跑的龟龟

cpp代码-02 邹红量 C++程序测试

【标题】"cpp代码-02 邹红量 C++程序测试"主要涉及的是C++编程语言的应用,尤其是关于程序的测试方面。在C++编程中,测试是确保代码质量、发现并修复错误的关键环节。

weixin_38693528

cpp代码-C++基础

本资料包“cpp代码-C++基础”是针对初学者和那些希望巩固C++基础知识的人们设计的,它包含了两个关键文件:README.txt和main.cpp。

weixin_38645379
评论 2
收藏 已收藏
分享
返回顶部
lanseyuxiao
C++ 语言 65,214 成员 250,514 内容