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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 14:30   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию запись в файл

Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
int** ed(int **matr, int n)      //матрица А+Е
{
int i,j;
printf("\nMatrica A+E");
for ( i = 0; i < n; i++) 
   {
           for ( j = 0; j < n; j++) 
       {
                   if (i==j) 
           {
                     matr[i][j]=matr[i][j]+1;
           }
           }
   }
for (i = 0; i < n; i++) 
   {
           printf("\n");
           for (j = 0; j < n; j++) 
       {
                   printf("%i ",matr[i][j]);
       } 
   }
                printf("\n");
                return(matr);
}
int** kv( int **matr, int n)   //матрица (А+Е)^2
{
      FILE *f2;
      char nameOut[100];//имя файла2(длина)
      printf("\n\nVvedite imy faila s rezultatom: ");
      scanf("%s",&nameOut);
      f2=fopen(nameOut,"w");//открываем файл2
      int i,j,ik,jk;
      printf("\nMatrica (A+E)^2");
      int **supermatr=new int *[n];
      for(i = 0; i<n;i++)
      {
          supermatr[i]=new int[n];
      }
      for (i = 0; i < n; i++)
      {
              for (j = 0; j < n; j++) 
          {
                  supermatr[i][j]=0;
              }
      }
      for (ik = 0; ik < n; ik++)
      {
              for (jk = 0; jk < n; jk++) 
          {
                        for (i = 0; i < n; i++) 
                {
                                 for (j = 0; j < n; j++) 
                     {
                                          if (i==j) 
                          {
                                               supermatr[ik][jk]+=matr[ik][j]*matr[i][jk];
                                          }
                                 }
                        }
              }
      }     
      for (i = 0; i < n; i++) 
      {
            printf("\n");
                for (j = 0; j < n; j++) 
            {
                         printf("%i ",supermatr[i][j]); 
                         fprintf(f2,"%d ",supermatr[i][j]);        
            }       
      }
      fclose(f2);
return(supermatr);
}
int main( )
{
      int i,j,ik,jk,l,p,n;
      float t;
      FILE *f1;
      char nameIn[100];
      printf("Vvedite poradok matrici: ");
      scanf("%f", &t);
      printf("\n");
      while (t<1||t!=(int)t) 
      {
           printf("Vi vveli nekorektnoe chislo.Vvedite cheloe neotricatlnoe chislo: ");
           scanf ("%f", &t);
      }
      n=t;
      int **matr=new int *[n];
      for(i=0; i<n;i++)
      {
           matr[i]=new int[n];
      }
      int *masiv=new int[n*n];
      printf("\tViberite variant vvoda:\n\n");
      printf("\t1.Vvod vruchnuy\n");
      printf("\t2.Iz faila");
      printf("\n\nNazmite 1 ili 2");
      if (getch()== '2') 
      {
           printf("\n");
           printf("Vvedite  imy faila: ");
           scanf("%s",nameIn);
           while((f1=fopen(nameIn,"r"))==NULL)
           {
                 printf("\nError.Fail ne naiden\n7");
                 printf("\nVvedite  imy faila: ");
                 scanf("%s",nameIn);
 
           }
      i=0;
      while(fscanf(f1,"%i",&masiv[i])!=EOF)
      {
                 i++;
      }
      p=0;
      for(i=0;i<n;i++)
      for(j=0;j<n;j++)
          {
                matr[i][j]=masiv[p];
                p++;
          } 
      }
      if (getch()== '1') 
      {
               printf("\n");
               printf("Vvedite elementi matrici\n");
               for (i = 0; i < n; i++) 
               {
                        for (j = 0; j < n; j++) 
                        {
                             printf("A[%d][%d] = ", i, j);
                             scanf("%i", &matr[i][j]);
                        }
               }
      }    
      printf("\nMatrica A\n");
      for (i = 0; i < n; i++) 
      {
               for (j = 0; j < n; j++) 
               {
                        printf("%i ",matr[i][j]);                            
               }
               printf("\n");
      }
      ed(matr,n);
      kv(matr,n);    
      getch();
}
Нужно маленько модифицировать код чтобы созранял матрицу в файл,щас он сохраняет только элементы матрицы в строку,а нужно как выглядет она в консоли,срочно
a.n.o.n.i.m вне форума
Старый 28.09.2011, 14:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На вскидку:
Код:
      
FILE* f=fopen("c:\\matr.txt","w+");
for (i = 0; i < n; i++) 
      {
               for (j = 0; j < n; j++) 
               {
                        fprintf(f,"%5i",matr[i][j]);                            
               }
               fprintf(f,"\n");
      } fclose(f);
I'm learning to live...
Stilet вне форума
Старый 28.09.2011, 14:39   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

имяя вводится в консоли c:\\matr.txt так не пойдет
a.n.o.n.i.m вне форума
Старый 28.09.2011, 15:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так вводи с консоли
В чем проблема? Опиши переменную строковую (массив символов) в нее вводи, ее и передавай в fopen()
I'm learning to live...
Stilet вне форума
Старый 28.09.2011, 15:23   #5
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Как оказалочь все намного проще, добавил строку fprintf(f2,"\n"); и стало писать матрицу в файл а не строку,удалите тему
a.n.o.n.i.m вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл skovorodkun Помощь студентам 2 23.06.2011 08:53
запись в файл $_Unit_$ Общие вопросы C/C++ 3 23.06.2009 12:59
Запись в файл С++ Viteks Общие вопросы C/C++ 3 18.04.2008 13:18
Запись в файл В_И_К_Т_О_Р Помощь студентам 9 30.01.2008 22:46
запись в файл Prisian Общие вопросы Delphi 6 24.07.2007 13:43