Записать в массив Array все, что лежит правее 4 в 1-ой строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть входной файл: 4 -2 1 -4 0.5 -6 3 -3 4 8 4 8 5 12 8 11 9 8.5 10 4.5 8 4 7.5 5 5 5 Где N=4 и N1=8, то есть первое число в строке. Тут я пытаюсь записать в массив Array все что лежит правее 4 в 1-ой строке, а в массив Array1 все что лежит правее 8 во второй строке.Выводит какой-то бред.
 if(in!=NULL)
    {
        //Array
        fscanf(in, "%d", &N);
        if((Array=(double *)malloc((2*N)*sizeof(double)))!=NULL)
        {   
            int i=0;
            while(fscanf(in, "%f", &tmp)==1)
            {
                Array[i]=tmp;
                i++;
                if(i+1>2*N) break;
            }
        }else
        {
            printf("Error memory allocation\n");
            return 1;
        }
 
        //Array1
        fscanf(in, "%d", &N1);
        if((Array1=(double *)malloc((2*N1)*sizeof(double)))!=NULL)
        {   
            int i=0;
            while(fscanf(in, "%f", &tmp)==1)
            {
                Array1[i]=tmp;
                i++;
                if(i+1>2*N1) break;
            }
        }else
        {
            printf("Error memory allocation\n");
            return 1;
        }
 
    }else
    {
        fprintf(out, "Error reading\n");
        fclose(out);
        return -1;
    }

Решение задачи: «Записать в массив Array все, что лежит правее 4 в 1-ой строке»

textual
Листинг программы
int m=1, n=1;
    double fabs1=0.0, sqrt1=0.0;
    double distance=0.0, mindistance=0.0;
    for(;;)
    {
        if(m*(m-1)==N) break;
        for(;;)
        {   
            if(2*n*(n-1)==N1) break;
            fabs1=(Array1[2*n*(n-1)+3]-Array1[2*n*(n-1)+1])*Array[m*(m-1)]+(Array1[2*n*(n-1)]-Array1[2*n*(n-1)+2])*Array[m*(m-1)+1]+(Array1[2*n*(n-1)+1]*(Array1[n+2]-Array1[2*n*(n-1)])-Array1[2*n*(n-1)]*(Array1[2*n*(n-1)+3]-Array1[2*n*(n-1)+1]));
            sqrt1=(Array1[2*n*(n-1)+3]-Array1[2*n*(n-1)+1])*(Array1[2*n*(n-1)+3]-Array1[2*n*(n-1)+1])+(Array1[2*n*(n-1)]-Array1[2*n*(n-1)+2])*(Array1[2*n*(n-1)]-Array1[2*n*(n-1)+2]);
            distance=fabs(fabs1)/sqrt(sqrt1);
            if(mindistance<distance)
            {
                mindistance=distance;
            }
            n++;
        }
        m++;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы