求助!(C语言编程题)。程序编译通过,但是无法实现题目要求。

求助!(C语言编程题)。程序编译通过,但是无法实现题目要求。题目:找出不是两个数组共有的元素。输入一个正整数n(1<n≤10),再输入n个整数,存入第1个数组中;然后输入... 求助!(C语言编程题)。程序编译通过,但是无法实现题目要求。题目:找出不是两个数组共有的元素。输入一个正整数n(1<n≤10),再输入n个整数,存入第1个数组中;然后输入一个正整数m(1<m≤10),再输入m个整数,存入第2个数组中,找出所有不是这两个数组共有的元素。试编写相应程序。
代码如下图所示,我输入n=5,m=3,a[n]={1,2,3,4,5},b[m]={1,2,3},为什么不同元素只显示4,而且重复
展开
 我来答
huanmiewh
2018-09-09 · TA获得超过277个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:98.5万
展开全部

你的代码里面有两个问题:

  1. a 和 b 两个数组声明的时候,n 和 m 还没有通过 scanf 输入需要的值,也没有进行初始化赋值,所以实际上创建的 a 和 b 两个数组的大小是不确定的。

  2. 在比较的部分,定义的 flag 从代码的意图上来看是想在找到共同的数字的时候,设置为 1 。但是在输出的时候却是判断的 flag 为 0 (即没有找到相同数字)时输出。

所以需要修改的有两个地方:

  1. 输入 n 和 m 之后再创建数组。

  2. 输出的时候判断 flag 是否为 1,而不是是否为 0

追问
我只改了第一个错误,程序应该正常了,多谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式