【问题标题】:C Program Doesn't Work Properly (Sets, Arrays, Loops)C 程序无法正常工作(集合、数组、循环)
【发布时间】:2016-10-02 19:58:09
【问题描述】:

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

【问题讨论】:

  • 请不要发送垃圾语言标签。
  • 什么是“位线”?

标签: c arrays loops c99


【解决方案1】:

在您的代码中:

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[] 中的元素。

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2019-01-01
    • 2011-02-03
    相关资源
    最近更新 更多