Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2016, 22:12   #1
iyoulka
 
Регистрация: 29.04.2016
Сообщений: 6
По умолчанию рекурсия произведение отрицательных элементов массива X, расположенных после первого положительного

Определить величину Y с помощью рекурсивной функции, как произведение отрицательных элементов массива X, расположенных после первого положительного элемента.
Определить Y для этой программы,помогите,пожалуйста
Код:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define n 2
//Функция ввода с клавиатуры
 void input_matr(int A[n][n])
{ 
    int i, j;
    printf ("Vvedite elementy matritsy A\n");
    for (i = 0; i<n; i++)
        for (j = 0; j<n; j++)
            scanf("%d", &A[i][j]);
}
//Функция ввода из файла
void read_file(int A[n][n])
{
    int i, j, k;
    FILE *fiLe_matr;
    fiLe_matr = fopen("in10_matr.txt", "r");
    k = 0;
    for (i = 0; i<n && !feof(fiLe_matr); i++)
    {
        for (j = 0; j<n && !feof(fiLe_matr); j++)
        {
            fscanf(fiLe_matr, "%d", &A[i][j]);
            k++;
        }
    }
    fclose(fiLe_matr);
    
}
 
//Функция записи в файл
void output(int A[n][n], int X[n])
{
    FILE *fp;
    fp = fopen("out10_matr.txt", "w");
    fprintf(fp, "Matr A:\n");
    printf("Matritsa A:\n");
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            printf("%d ", A[i][j]);
            fprintf(fp, "%d ", A[i][j]);
        }
        printf("\n");
        fprintf(fp, "\n");
    }
    fprintf(fp, "Massiv X:\n");
    printf("Massiv X:\n");
    for (int i = 0; i<n; i++)
    {
        fprintf(fp, "%d ", X[i]);
        printf("%d ", X[i]);
    }
    fclose(fp);
 
}
//Определение массива
int *massiv_X(int A[n][n], int *X)
{
    int k = 0, t = 0;
    int maxM = A[0][0], max = A[0][0];
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<n; j++)
        {
            if (max<A[i][j])
            {
                max = A[i][j];
                t = j;
            }
            if (maxM<A[i][j])
            {
                maxM = (A[i][j]);
                k = j;
            }
        }
    }
    if (t == k)
        for (int i = 0; i<n; i++)
            X[i] = A[i][t];
    else
        for (int i = 0; i<n; i++)
            X[i] = A[i][n - i - 1];
    return X;
}
int main()
{
    int A[n][n], X[n];
    int c;
    do
    {
        printf("Vvod matrici A:\n1-s klaviaturi\n2-iz faila\n");
        scanf("%d", &c);
    } while (c != 1 && c != 2);
    switch (c)
    {
    case 1:
        input_matr(A);
        break;
    case 2:
        read_file(A);
    }
    output(A, massiv_X(A, X));
    
      _getch();
        return 0;
}
iyoulka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумму элементов массива, расположенных после последнего элемента, равного нулю Misha_Sil Помощь студентам 6 18.02.2013 21:01
Найти сумму элементов расположенных ,после первого элемента равному нулю геннадий 2012 Visual C++ 13 26.12.2012 18:18
Вычислить произведение элементов массива, расположенных под главной диагональю вася2342 Помощь студентам 1 06.06.2012 09:40
Найти сумму модулей элемента массива, расположенных после первого отрицательного ? МоЗгАвеД Общие вопросы C/C++ 0 12.12.2011 17:36
сумму элементов массива, расположенных после последнего элемента, равного нулю. R@Ziel Помощь студентам 2 17.12.2009 23:44