помогите найти косяк

  • Автор темы Guest
  • Дата начала
G

Guest

#1
в чём косяк?)
C++:
#include <cstdlib>
#include <stdio.h>
#include <malloc.h>
/*заданы массивы X[N],У[K] переписать все простые элементы в массив Z[M],
удалить все элементы равные минимальному и максимальному значению массива Z[M]*/
bool pr(int x)
{
int i;
bool pr=1;
for(i=2;i<=x/2;i++)
if(x%i==0)
{pr=0;break;}
return pr;
}
int pere(int *x,int n,int *y,int k)
{
int i;
for(i=0;i<n;i++)
if(pr(x[i]))
{realloc((int*)y,(k+1)*sizeof(int));
y[k++]=x[i];}
return k;
}
int del(int *x,int n)
{
int i,j,min,max;
for(min=max=x[0],i=1;i<n;i++)
if(x[i]>max)
max=x[i];
else
if(x[i]<min)
min=x[i];
for(i=0;i<n;)
{
if(x[i]==max||x[i]==min)
{for(j=i;j<n-1;j++)
x[j]=x[j+1];
n--;
realloc((int*)x,n*sizeof(int));}
else
i++;
}  
return n;
}
int main()
{
int *x,*y,*z,n,k,m=0,i;
printf("\nN=");scanf("%d",&n);
x=(int*)calloc(n,sizeof(int));
printf("\nVvedite X[N]");
for(i=0;i<n;i++)
{
printf("\nX[%d]=",i);
scanf("%d",&x[i]);
}
z=(int*)calloc(n,sizeof(int));
m=pere(x,n,z,m);
printf("m=%d",m);
printf("\nMassiv Z");
for(i=0;i<m;i++)
printf("\nZ[%d]=%d",i,z[i]);
printf("\n\n");
printf("\nK=");scanf("%d",&k);
y=(int*)calloc(k,sizeof(int));
printf("\nVvedite Y[K]");
for(i=0;i<k;i++)
{
printf("\nY[%d]=",i);
scanf("%d",&y[i]);
}
m=pere(y,k,z,m);
printf("m=%d",m);
printf("\nMassiv Z");
for(i=0;i<m;i++)
printf("\nZ[%d]=%d",i,z[i]);
printf("\nudalim vse min i max");
m=del(z,m);
printf("\nMassiv Z bez min i max");
for(i=0;i<m;i++)
printf("\nZ[%d]=%d",i,z[i]);
free(x);
free(y);
free(z);
system("PAUSE");
return EXIT_SUCCESS;
}
 

lazybiz

Well-known member
03.11.2010
1 339
0
#2
Пока ты не напишешь что именно у тебя не работает, косяк будет в тебе.