我找不到这个段错误了

清清紫金 2020-03-12 06:22:19



代码出现了段错误,我实在是找不到在哪里
#include <stdio.h>


int main()
{
int chang1;scanf("%d",&chang1);int a[chang1];
for(int i=0;i<chang1;i++)
{
scanf("%d",&a[i]);}
printf("dgdfsg");
int n;scanf("%d",&n);int b[n];
for(int i=0;i<n;i++){
scanf("%d",&b[i]);}
int c[20];int count =0;
int i,j;

for( i=0;i<chang1;i++)
{
int flag=1;
for( j=0;i<n;j++)
{
if(a[i]==b[j])flag=0;
}
if(flag)c[count++]=a[i];
}

for( i=0;i<n;i++)
{ int flag=1;
for( j=0;i<chang1;j++)
{
if(b[i]==a[j])flag=0;
}
if(flag)c[count++]=b[i];
}
printf("%d",c[0]);
for(int i=1;i<count;i++)
{int flag=1;
for(int j=0;j<i;j++)
{
if(c[i]==c[j])flag=0;
}

if(flag)printf(" %d",c[i]);

}

}

/usercode/script.sh: line 62: 11 Segmentation fault $output - < "/usercode/inputFile"


问题描述
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:
3 5 -15 6 4 1
...全文
470 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
akari10032 2020-03-12
  • 打赏
  • 举报
回复
编译时加上-g,在gdb里run下,出现段错误看一下trace就知道在哪了。另外c99是支持使用变量定义数组的
清清紫金 2020-03-12
  • 打赏
  • 举报
回复
我知道了,其中i,j,有混淆的
自信男孩 2020-03-12
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main()
{
int chang1;
scanf("%d",&chang1);
//int a[chang1];
int *a = (int *)malloc(sizeof(int) *chang1);
for(int i=0;i<chang1;i++)
{
scanf("%d",&a[i]);
}
printf("dgdfsg");
int n;
scanf("%d",&n);
//int b[n];
int *b = (int *)malloc(sizeof(int)* n);
if (!b)
exit(0);

for(int i=0;i<n;i++){
scanf("%d",&b[i]);
}
int c[20];
int count =0;
int i,j;

for( i=0;i<chang1;i++)
{
int flag=1;
for( j=0;i<n;j++)
{
if(a[i]==b[j])flag=0;
}
if(flag)c[count++]=a[i];
}

for( i=0;i<n;i++)
{ int flag=1;
//for( j=0;i<chang1;j++) //怎么变成i呢
for( j=0;j<chang1;j++)
{
if(b[i]==a[j])flag=0;
}
if(flag)c[count++]=b[i];
}
printf("%d",c[0]);

for(int i=1;i<count;i++)
{int flag=1;
for(int j=0;j<i;j++)
{
if(c[i]==c[j])flag=0;
}

if(flag)printf(" %d",c[i]);

}

}

供参考~

试一下这个程序~

变长数组C语言不支持,只支持固定长度的数组。因此要用动态申请空间,另外,建议加上free
qybao 2020-03-12
  • 打赏
  • 举报
回复
这个动态数组能这样用吗?int a[chang1]; int b[n];

清清紫金 2020-03-12
  • 打赏
  • 举报
回复
其中第10行是我测试用的

70,029

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧