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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2009, 20:24   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию Преобразование матриц на языке Си

Добрый вечер!!!У меня проблема....необходимо максимальному элементу столбца матрицы присвоить 1, а минимальному -1(матрица считывается из файла и записывает в файл результат преобразования, а так же выводит все на экран). Проблема в том, что мне необходимо написать программу, состоящую из функций...Я так понимаю загвоздка в том, что не может разименовать переменную fin. Вот мой исходничек:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 100;



void OpenFile (FILE *fin)
{
  char input_name[100];

  printf("Введите имя файла\n");
  gets(input_name);
  fin=fopen (input_name,"rt");
  if (fin==NULL){
    printf("Файл не найден.Конец программы\n");
    scanf(input_name);
    exit(1);
   }
}

void vidileniePamiti (FILE *fin,int string,int column,int **mass1)
{
 int i;
 fscanf (fin,"%d", string);
  fscanf (fin,"%d", column);
  mass1 = (int **)malloc(string*sizeof(int*));

  for (i=0;i<string;i++)
    mass1[i] = (int*)calloc(column,sizeof(int));
}

void OutputIsxMatrix(FILE *fin,int string,int column,int**mass1)
{ int i,j;

  printf("Исходная матрица\n");
  for (i=0;i<string;i++)
    for (j=0;j<column;j++)
    {
      fscanf (fin,"%d", &mass1[i][j]);
      printf ("%d%c",mass1[i][j],(j<column-1)?' ':'\n');
    }
}

void Inizializ(int column,int string,int **mass1)
{ int i,j;
  int max,min;

 for(j=0;j<column;j++)
  {
   min=max=mass1[0][j];
   for(i=0;i<string;i++)
    {
     if(mass1[i][j]>max) max=mass1[i][j];
     if(mass1[i][j]<min) min=mass1[i][j];
    }
   for(i=0;i<string;i++)
     if(mass1[i][j]==max) mass1[i][j]=1;
     else if(mass1[i][j]==min) mass1[i][j]=-1;
  }
}





void PreobrMatrix(FILE *fout,int string, int column, int **mass1)
{ int i,j;


  printf("Преобразованная матрица сохранена в файле OUT.txt\n");
  printf("Преобразованная матрица: \n");
  fout=fopen("out.txt","wr");
  fprintf(fout,"Преобразованная матрица: \n");
  for (i=0;i<column;i++)
    {
     for (j=0;j<string;j++)
     {
      fprintf(fout,"%4d", mass1[i][j]);
      printf("%4d",mass1[i][j]);
     }
     fprintf(fout,"\n");
     printf("\n");
    }

}

void OsvobozdenitPamiti(FILE *fin,FILE *fout,int string,int**mass1)
{ int i;
 for(i = 0; i < string; i++)
    free(mass1[i]);
  free(mass1);

      close(fin);
      close(fout);
      getch();

}

void main ()
{
  FILE *fin,*fout;
  int string=0;
  int column=0;
  int ** mass1;


  OpenFile(fin);
  vidileniePamiti(&fin,string,column,&mass1);
  OutputIsxMatrix(&fin,string,column,&mass1);
  Inizializ(column,string,&mass1);
  PreobrMatrix(&fout,string,column,&mass1);
  OsvobozdenitPamiti(&fin,&fout,string,mass1);
}
Зарание спасибо!!!!!
tanek вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20
Преобразование матриц bpystep Помощь студентам 8 23.03.2009 12:54
объединение матриц eHappy Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2008 00:36
Программа на русском языке в Windows XP на другом языке... Как? 29bit Свободное общение 4 01.02.2008 17:24