C语言很简单的一道问题,新手急求
【问题描述】两个集合的差集定义如下:集合A、B的差集,由所有属于A但不属于B的元素构成。输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。【输入形式】从标...
【问题描述】两个集合的差集定义如下:
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】
从标准输入接收集合中的自然数元素,以空格分隔。-1表示输入结束。
其中,每个集合都不输入重复的元素。
【输出形式】
输出差运算后集合中的元素,以空格分隔。输出元素的顺序与原有集合A输入的顺序一致。
如果A、B的差集为空集,则不输出任何数值。
【样例输入】
2 8 3 4 -1
6 1 4 9 -1
【样例输出】
2 8 3
#include <stdio.h>
int main()
{
int a[100],b[100],c[100],i,j,m,n,k;
k=0;
for(i=0;;i++){
scanf("%d",&a[i]);
if(a[i]==-1)
m=i;
break;
}
for(j=0;;j++){
scanf("%d",&b[j]);
if(b[j]==-1)
n=j;
break;
}
for(i=0;i<=m;i++){
for(j=0;j<=n;j++){
if(a[i]==a[j]){
c[k]=a[i];
k=k+1;
}
}
}
for(k=0;;k++)
printf("%d ",a[k]);
printf("\n");
return 0;
}
求具体解法或帮我看下错在哪里 展开
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】
从标准输入接收集合中的自然数元素,以空格分隔。-1表示输入结束。
其中,每个集合都不输入重复的元素。
【输出形式】
输出差运算后集合中的元素,以空格分隔。输出元素的顺序与原有集合A输入的顺序一致。
如果A、B的差集为空集,则不输出任何数值。
【样例输入】
2 8 3 4 -1
6 1 4 9 -1
【样例输出】
2 8 3
#include <stdio.h>
int main()
{
int a[100],b[100],c[100],i,j,m,n,k;
k=0;
for(i=0;;i++){
scanf("%d",&a[i]);
if(a[i]==-1)
m=i;
break;
}
for(j=0;;j++){
scanf("%d",&b[j]);
if(b[j]==-1)
n=j;
break;
}
for(i=0;i<=m;i++){
for(j=0;j<=n;j++){
if(a[i]==a[j]){
c[k]=a[i];
k=k+1;
}
}
}
for(k=0;;k++)
printf("%d ",a[k]);
printf("\n");
return 0;
}
求具体解法或帮我看下错在哪里 展开
4个回答
展开全部
#include <stdio.h>
int main()
{
int a[100],b[100],c[100],x;
int ia=0,ib=0,ic=0;
do
{
scanf("%d",&x);
a[ia]=x;
ia++;
}while(x!=-1);
ia--;
do
{
scanf("%d",&x);
b[ib]=x;
ib++;
}while(x!=-1);
ib--;
for(int i=0;i<ib;i++)
{
for(int j=0;j<ia;j++)
{
if(a[i]==b[j])
break;
}
if(j==ia)
{
c[ic]=a[i];
ic++;
}
}
for(int k=0;k<ic;k++)
printf("%d ",c[k]);
printf("\n");
return 0;
}
int main()
{
int a[100],b[100],c[100],x;
int ia=0,ib=0,ic=0;
do
{
scanf("%d",&x);
a[ia]=x;
ia++;
}while(x!=-1);
ia--;
do
{
scanf("%d",&x);
b[ib]=x;
ib++;
}while(x!=-1);
ib--;
for(int i=0;i<ib;i++)
{
for(int j=0;j<ia;j++)
{
if(a[i]==b[j])
break;
}
if(j==ia)
{
c[ic]=a[i];
ic++;
}
}
for(int k=0;k<ic;k++)
printf("%d ",c[k]);
printf("\n");
return 0;
}
展开全部
你的逻辑有问题,这哪里是求差集明明是求的交集,第三个循环很明显逻辑错误。
整个程序一团糟,break语句要放到if的花括号里面,第三个循环中数组写错了,
最后也不是输出a数组呀,输出c才对的。
整个程序一团糟,break语句要放到if的花括号里面,第三个循环中数组写错了,
最后也不是输出a数组呀,输出c才对的。
追问
谢谢,豁然开朗。。但改了一会老是出错,能具体帮忙修改一下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一维数组,利用循环语句一个一个判断
追问
求具体解法或帮我看下错在哪里。谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c数组中存的是a和b的交集
追问
谢谢。能具体帮忙修改一下吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询