Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Потоковый ввод и ввод с клавиатуры. Рекурсия
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
lerenia lerenia вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.04.2013
По умолчанию Потоковый ввод и ввод с клавиатуры. Рекурсия - 10.05.2013, 22:48

Программа должна по выбору пользователя осуществлять ввод исходной матрицы с клавиатуры или из файла. Для этого программа должна содержать две соответствующие функции, указатель на одну из которых необходимо передавать в функцию для вычисления элементов массива Х. Данная функция должна вызывать через указатель одну из функций ввода элементов матрицы, производить вычисление элементов массива X в соответствии с заданием и возвращать указатель на этот массив. Кроме того, программа должна содержать функцию для вывода на экран и в файл исходной матрицы и результирующего массива, а также рекурсивную функцию определения в соответствии с заданием величины Y.
В программе не должно быть глобальных переменных.
Дана матрица А(5х5). Определить массив Х из 5 элементов, каждый из которых равен 1, если сумма модулей элементов соответствующего столбца больше наибольшего по модулю элемента матрицы и –1 в противном случае. Определить величину Y, как сумму положительных элементов первой строки матрицы, расположенных после первого нулевого элемента.
c Код:
#include<stdio.h>
#include <conio.h>
#include<locale.h>
#include <math.h>
#define n 3
//Функция вода элементов матрицы с клавиатуры
void input_matr(int a[n][n])
{
    int i,j;
    printf("Введите элементы матрицы А:  \n");
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            scanf("%d", &a[i][j]);
}
//Функция заполнения матрицы
void input_file (int (*a)[n])
{
    int i,j;
    FILE*file;
    file=fopen("c:\\matr.txt", "r");
    if (file)
    {
        for (i=0;i<n; i++)
            for(j=0;j<n;j++)
                fscanf(file,"%d",&a[i][j]);
        fclose(file);
    }
}
//функция вычисления элементов мссива х
int *mas_x(int(*a)[n],int *x, void (*pfunc)(int [n][n]))
{
    pfunc(a);
    int sum[n], max,i,j;
    static int x[n];
    pfunc(a);
    max=abs(a[0][0]);//нахождение максимального элемента матрицы
    for ( i=0; i<n; i++)
        for ( j=0; j<n; j++)
            if (abs(a[i][j]) > max)
                max=abs(a[i][j]);
    for ( j=0; j<n; j++)//сумма элеменов столбцов
    {
        sum[j]=0;
    for ( i=0; i<n; i++)
        sum[j]=sum[j]+a[i][j];
    sum[j]=abs(sum[j]);
    }
    for ( j=0; j<n; j++)
        if (sum[j]>max) x[j]=1;
        else x[j]=-1;
        return *a;
}
//функция вывода матрицы а и х
void output(const int x[], const int a[][N] )
{
    int i,j;
    printf("Матрица А:\n");
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        printf("%5d",a[i][j]);
        printf("\n");
     }
    printf("Массив Х:\n");
    for (i=0;i<N;i++)
        printf("%5d",x[i]);
    printf("\n");
}
int main()
{
    setlocale(LC_CTYPE,"");
    int a[N][N], x[N], c;
    void (*pfunc)(int [N][N]);
    do
    {
        printf("Ввод матрицы:\n1 - с клавиатуры\n2 - \
               из файла\n"
);
        scanf("%d",&c);
    }
    while (c!=1 && c!=2);
    // Присваивание указателю адреса одной из функций:
    switch (c)
    {
    case 1: pfunc=&input_matr;
        break;
        case 2: pfunc=&input_file;
            }
    output(mas_x(a,x,pfunc),a);
    _getch();

int recurs(int p*, t, &sum)
{
    if (t==0)
        return 0;
    else sum=sum+recurs(p+1, t-1, sum);
}
}


помогите!!! она не работает!((((((((((
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод данных с клавиатуры как написать программу fitto С/С++ 6 24.02.2011 17:54
Ввод данных с клавиатуры в Pascale Вика03051992 Вопросы начинающих программистов 1 27.12.2010 12:01
Ввод данных с клавиатуры на диалог AmDeaD Visual C++ 2 04.10.2009 16:02
Потоковый Ввод-вывод в многонитевом приложении p5-vbnekit C++ на Unix 2 17.04.2009 00:04
Ввод с клавиатуры и поиск Rifler Assembler 0 12.04.2009 15:23
Ввод массива с клавиатуры chi-za Вопросы начинающих программистов 8 21.07.2008 23:21
Ввод чисел с клавиатуры как реализовать imported_SAVIK Assembler 1 25.05.2008 11:45
Потоковый ввод строки Svo Visual C++ 4 22.01.2008 04:34
Ввод двумерного массива с клавиатуры MrPIT С/С++ 9 26.04.2006 17:05
Ввод с клавиатуры artgonch Prolog 3 08.04.2005 12:53
Как с помощью хуков изменять ввод с клавиатуры Rocky Visual C++ 4 13.01.2005 02:30
Ввод с клавиатуры строк символов Юрий_S Вопросы начинающих программистов 1 17.12.2004 17:00



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов