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

Тема в разделе "C и С++ FAQ", создана пользователем -, 5 янв 2011.

  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;
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Пока ты не напишешь что именно у тебя не работает, косяк будет в тебе.
     
  3. ixoyz

    ixoyz Member

    Регистрация:
    12 май 2012
    Сообщения:
    16
    Симпатии:
    0
    Если идея была max=x[0], min=x[0], то на самом деле получиться несколько иное:
    max=x[0]
    min= результат от выполнения max=x[0] и по моему результат будет 0 или 1
     
Загрузка...

Поделиться этой страницей