C语言求助!

代码出什么问题了?无论怎样输入都没有反应。
#include<stdio.h>
int main()
{
int c[20], k=0;
int n1;
scanf("%d",&n1);
int a[n1];
int i;
for(i=0;i<n1;i++)
{
scanf("%d",&a[i]);
}
getchar();
int n2;
int j, t, count=0;
scanf("%d",&n2);
int b[n2];
for(i=0;i<n2;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
if(a[i]!=b[j])
{
count++;
}
if(a[i]==b[j])
{
break;
}
}
if(count==n2)
{
c[k]=a[i];
k++;
}
}
int f=0, d[20], y=0;
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
if(a[i]==a[j])
{
f=1;
break;
}
}
if(f==0)
{
d[i]=a[i];
y++;
}
}
for(i=0;i<y;i++)
{
printf("%d ",d[i]);
}
return 0;
}

第1个回答  2020-11-16
第2个回答  2020-11-16
#include<stdio.h>
int main()
{
int c[20], k=0;
int n1;
scanf("%d",&n1);
int a[n1]; 数组不能临时开
int i;
for(i=0;i<n1;i++)
{
scanf("%d",&a[i]);
}
getchar();
int n2;
int j, t, count=0;
scanf("%d",&n2);
int b[n2]; 数组不能临时开
for(i=0;i<n2;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
if(a[i]!=b[j])
{
count++;
}
if(a[i]==b[j])
{
break;
}
}
if(count==n2)
{
c[k]=a[i];
k++;
}
}
int f=0, d[20], y=0;
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
if(a[i]==a[j])
{
f=1;
break;
}
}
if(f==0)
{
d[i]=a[i];
y++;
}
}
for(i=0;i<y;i++)
{
printf("%d ",d[i]);
}
return 0;
}
要提前声明int a[80],b[90]等等
第3个回答  2020-11-17

#include<stdio.h>

int main()

{ int c[20], k=0;

  int n1;

  scanf("%d",&n1);

  int a[n1];

  int i;

  for(i=0; i<n1; i++)

  { scanf("%d",&a[i]);

  }

  getchar();

  int n2;

  int j, t, count=0;

  scanf("%d",&n2);

  int b[n2];

  for(i=0; i<n2; i++)

  { scanf("%d",&b[i]);

  }

  for(i=0; i<n1; i++)

  { for(count=j=0; j<n2; j++)

    { if(a[i]!=b[j])

      { count++;

      }

      if(a[i]==b[j])

      { break;

      }

    }

    if(count==n2)

    { c[k]=a[i];

      k++;

    }

  }

  int f=0, d[20], y=0;

  for(i=0; i<k; i++)

  { for(j=0; j<k; j++)

    { if(i!=j&&a[i]==a[j])

      { f=1;

        break;

      }

    }

    if(f==0)

    { d[i]=a[i];

      y++;

    }

  }

  for(i=0; i<y; i++)

  { printf("%d ",d[i]);

  }

  return 0;

}

相似回答