为了账号安全,请及时绑定邮箱和手机立即绑定

您好,请问一下这个函数说是定义不合法?该怎么理解呢?

您好,请问一下这个函数说是定义不合法?该怎么理解呢?

慕桂英3389331 2021-07-08 11:07:19
#include <stdio.h>#include <stdlib.h>#include <iostream>#define VOIDPARAMETER 0using namespace std;//交集bool Intersection(int a[], int b[], int m, int n){ cout<<"两集合交集:"<<"{"; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(a[i] == b[j])  { return true;}}cout<<endl;}//并集void AddSets(int a[], int b[], int m, int n){ bool flat;cout<<"两集合并集:"<<"{";for(int i = 0; i < m; i++) { flat = true; for(int j = 0; j < n; j++) { if(a[i] == b[j]) { flat = false; break; } }  if(flat) cout<<a[i]<<' ';} for(int j = 0; j < n; j++) { cout<<b[j]<<' '; }if(i>=m){cout<<"}";}cout<<endl;} int main( ){ int n,m=1;cin>>n;for(m=1;m<=n;){ int N,M,i,j,k,flag,m1=2,n1=2;int c[100][100]={0};cin>>N>>" ">>M;for(k=1;k<=M;k++){cin>>c[k];}flag=1;while(flag){ flag=0;for(i=1;i<=M;i++)if c[i]!={0}{ for(j=i+1;j<=M;j++)if c[j]!={0}{ if(Intersection(c[i],c[j],m1,n1)==true){flag=1;c[i]=AddSets(c[i],c[j],m1,n1);c[j]={0};m1=m1+1;}elsec[i]=c[i];c[j]=c[j];}}}count=0;for(i=1;i<=M;i++)if c[i]!={0}count++;cout<<" 输出非空数组的个数:"<<count;}if(i>M)m++;break;}return 0;}
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define VOIDPARAMETER 0
using namespace std;
//交集
bool Intersection(int a[], int b[], int m, int n)
{
cout<<"两集合交集:"<<"{";
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
if(a[i] == b[j])
{
return true;
}
}
cout<<endl;
}// 缺少}
return false;
}
//并集
void AddSets(int a[], int b[], int m, int n)
{ bool flat;
cout<<"两集合并集:"<<"{";
for(int i = 0; i < m; i++)
{
flat = true;
for(int j = 0; j < n; j++)
{
if(a[i] == b[j])
{
flat = false;

break;
}
}
if(flat) cout<<a[i]<<' ';
}
for(int j = 0; j < n; j++)
{
cout<<b[j]<<' ';
}
if(i>=m)
{
cout<<"}";
}
cout<<endl;
}

int main( )
{
int n,m=1,count;
int N,M,i,j,k,flag,m1=2,n1=2;
int c[100][100]={0};
cin>>n;
for(m=0;m<=n;)
{

cin>>N>>M;
for(i=0;i<N;i++)// 修改
{
for(k=0;k<M;k++)
{
cin>>c[i][k];
}
}
flag=1;
while(flag)
{
flag=0;
for(i=0;i<N;i++)
{
for(j=i+1;j<M;j++)
{
if (c[i][j]!=0) // 修改
{
if(Intersection(c[i],c[j],m1,n1)==true)
{
flag=1;
AddSets(c[i],c[j],m1,n1);
c[i][j]=0;
m1=m1+1;
}
//else
// c[i]=c[i];
// c[j]=c[j];
}
}
}
}
count=0;
for(i=0;i<N;i++)
{
for(j=i+1;j<M;j++)
{
if (c[i][j]!=0)
count++;
}
}
cout<<" 输出非空数组的个数:"<<count;
// if(i>M)
// m++;
// break;
// }
}

return 0;
}



查看完整回答
反对 回复 2021-07-11
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

int a[]不合法

查看完整回答
反对 回复 2021-07-11
  • 2 回答
  • 0 关注
  • 267 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信