C程序无法正常工作(设置,数组,循环)
请帮助
输出:
A至B的补充:0110010010, 但必须是:0100000010
printf("A \\ B: ");
for (int i = 0; i < SizeOfU; i++)
{
for (int j = 0; j < SizeOfB; j++)
{
if ((U[i] == A[j]) && (A[i] != B[j]))
{
i++;
j = 0;
printf("1");
}
答案 0 :(得分:0)
在您的代码中,您有:
for (int i = 0; i < SizeOfU; i++)
{
for (int j = 0; j < SizeOfB; j++)
{
if ((U[i] == A[j]) && (A[i] != B[j]))
变量i
是数组U[]
的索引,而j
是数组B[]
的索引。问题是您同时使用索引i
和j
用于A[]
。这显然是错的;你实际上是在A[]
结束时阅读,但只有幸运才能阻止你出现分段错误。
尝试在不使用数组U[]
的情况下编写算法。对于联合,您可以打印出A[]
的元素,然后打印B[]
中不属于A[]
的元素。