C程序无法正常工作(集合,数组,循环)

时间:2016-10-02 19:58:10

标签: c arrays loops c99

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");
        }

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[]的索引。问题是您同时使用索引ij用于A[]。这显然是错的;你实际上是在A[]结束时阅读,但只有幸运才能阻止你出现分段错误。

尝试在不使用数组U[]的情况下编写算法。对于联合,您可以打印出A[]的元素,然后打印B[]中不属于A[]的元素。