Я пишу программу, которая требует от меня объединения двух массивов. Вот мой код до сих пор. я получаю ошибку сегментации как ошибка после того, как я вхожу множество A.Ошибка сегментации в работе c scanf
#include <stdio.h>
void Union(int a[], int b[], int set1, int set2)
{
int u[20], i, j, unionIndex=0,trigger;
for(i=0; i<set1; i++)
{
u[unionIndex] = a[i];
unionIndex++;
}
for(i=0; i<set2; i++)
{
trigger=0;
for(j =0; j<set1; j++)
{
if(b[i] == u[j])
{
trigger =1;
break;
}
}
if(trigger =0)
{
u[unionIndex]=b[i];
unionIndex++;
}
}
for(i=0;i<unionIndex;unionIndex++)
{
printf(" %d",u[i]);
}
}
int main(void) {
int N=0;
int M=0;
int i;
int j;
printf("Please enter the number of elements in set A: ");
scanf("%d",N);
int a[N];
printf("Enter the numbers in set: ");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
printf("Please enter the number of elements in set B: ");
scanf("%d",M);
int b[M];
printf("Enter the numbers in set: ");
for(j=0;i<M;i++)
{
scanf("%d",&b[i]);
}
Union(a,b,N,M);
return 0;
}
Я уверен, что этот вопрос имеет что-то делать с массивами, так как программа будет компилироваться, но я получаю ошибку сразу после того, пользователь вводит набор О. Я новичок в C, но я знаю намного больше о Java, поэтому я думаю, что это имеет какое-то отношение к распределению памяти. Я не совсем уверен, как решить проблему, поэтому, если бы вы могли указать мне в правильном направлении, это было бы полезно.
Это для 'M' тоже. –
@JameyD, я просто редактировал .. thanx .. :) – Haris
Спасибо! @JameyD – Naman