Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание двумерного массива 
:(
    Опции темы
dimmon123
Дата 19.10.2012, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



Цитата(feodorv @  17.10.2012,  14:36 Найти цитируемый пост)
то в res был бы мусор. Никто не гарантирует, что Вас не попросят все объявления переменных перенести внутрь main, а если попросят, то будет сюрприз. Прошу вернуть строчку на место)))

понял!вернул)))на выхах как сделаю Цикл2 скину на проверку)
PM MAIL   Вверх
dimmon123
Дата 20.10.2012, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



feodorv, после вопроса о редактировании матрицы что то код не срабатывает, посмотри что не так)

Код

// ConsoleApplication8.cpp: определяет точку входа для консольного приложения.
//

#include "stdio.h"
#include "stdafx.h"
#include "windows.h"
#include "math.h"
#include "conio.h"
#include "stdlib.h"
#define n 20

 int i,j,k;
 int dim = 0;
 int mt1[n][n];
 int mt2[n][n];
 int res[n][n];
 float A[20][20];
 
void main()
{
   do 
   {
       /* вопрос о размерности */
       system ("cls");
       printf( "Please, enter matrix dimension:" );  
       scanf_s( "%d", &dim);
       if( dim <= 0 || dim > n ) 
       {
          printf( "Invalid value %d\n", dim);
          continue;
       }
 
       /* вопрос о заполнении матрицы (случайно, диагонально, с клавиатуры) */
       system ("cls");
       printf (" (1) - Aftozapolnenie\n (2) - Zapolnenie diagonali\n (3) - Vvod s klaviaturi\n (4) - Exit\n\n Please select: ");
       char iSelect = _getch();
       if( iSelect == '4' ) break;

       /* заполнение матриц в зависимости от выбора пользователя */
       switch( iSelect )
       {
          case '1': 
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   mt1[i][j]=rand();
                   mt2[i][j]=rand();
                 }
             break;

          case '2':
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   if (i==j)
                    mt1[i][j]=1;
                  else
                    mt1[i][j]=0;
                   if (i==j)
                    mt2[i][j]=1;
                  else
                    mt2[i][j]=0;
                }
             break;
                
          case '3':
              printf("\nEnter mt1:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s(" %d", &mt1[i][j]);
                 }
             
              printf("\nEnter mt2:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s( "%d", &mt2[i][j]);
                 }
                 break;
                
          default: 
             printf ("\n\nBad select, try again\n\n"); 
             _getch();  
             continue;
        }
 do 
   {
         /* печать матриц */
      system ("cls");
      printf("mt1:\n");
      for( i=0; i<dim ;i++)
      {
          for( j=0; j<dim; j++)
          {
            printf( " \t%d", mt1[i][j]);
          }
     putchar('\n');
      }

      printf("mt2:\n");
      for( i=0; i<dim ;i++)
      {
          for( j=0; j<dim; j++)
          {
            printf( " \t%d", mt2[i][j]);
          }
     putchar('\n');
      }

      /* вопрос о редактировании матриц (хочу редактировать mt1, хочу редактировать mt2, не хочу редактировать) */
       system ("cls");
       printf (" (1) - Redaction mt1\n (2) - Redaction mt2\n (3) - Exit\n\n Please select: ");
       char iSelect = _getch();
       if( iSelect == '3' ) break;

      /* вопрос об редактируемом элементе (координаты+значение) */
       system ("cls");
       printf (" Enter x,y in [x,y] format: ");
       
      /* меняем значение у mt1 или mt2 */
       int i = 0, j = 0;
       float tmp = 0.0;
       scanf_s (" %i, %j", &i, &j);
       printf (" Value [%i, %j] is: %f", i, j, A[i][j]); 
       printf (" New value: ");
       scanf_s ("%f", &tmp);
       A[i][j] = tmp;

   }while (true);

      /* вопрос об операции с матрицами (сложение, вычитание) */
      system ("cls");
      printf (" (1) -  Mult\n (2) - Summa\n \n Please select: ");
      iSelect = _getch();

      /* выполнение операций над матрицами в зависимости от выбора пользователя */
      switch( iSelect )
      { 
         case '1':             
            for( i=0; i<dim; i++)
               for( j=0; j<dim; j++)
               {    
                   res[i][j] = 0;
                   for( k = 0; k<dim; k++)  res[i][j] += mt1[i][k] * mt2[k][j];
                }
            break;

         case '2': 
            for(i=0;i<dim;i++)
               for(j=0;j<dim;j++)
                  res[i][j] = mt1[i][j] + mt2[i][j];
            break;

         default: 
            printf ("\n\nBad select, try again"); 
            _getch();  
            continue;
      }

      /* печать операции и результата */
      printf( "Operation:\n %s\n", (iSelect == '1') ? "multiplication" : "addition");

      printf( "\nResult:\n" );
      for( i=0; i<dim ;i++)
      {
          for( j=0; j<dim; j++)
          {
              printf( " \t%d", res[i][j]);
          }
      putchar('\n');
      }
      _getch();  

   }while (true);
}

PM MAIL   Вверх
feodorv
Дата 20.10.2012, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  20.10.2012,  18:00 Найти цитируемый пост)
 float A[20][20];

А что это за новая сущность? Каким боком она нам нужна?

Если вопрос во флоатах, то можно просто поменять типы у матриц mt1, mt2 и res, а также заменить %d на %f. Но про float A[20][20] я ничего не знаю...


Цитата(dimmon123 @  20.10.2012,  18:00 Найти цитируемый пост)
       A[i][j] = tmp;

просто замени на 
Код

if( iSelect == '1' ) mt1[i][j] = tmp; else mt2[i][j] = tmp;


PS Но смотри, у тебя матрицы заточены под int, а ты float теперь захотел)))

Это сообщение отредактировал(а) feodorv - 20.10.2012, 18:21


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



Цитата(feodorv @  20.10.2012,  18:21 Найти цитируемый пост)
PS Но смотри, у тебя матрицы заточены под int, а ты float теперь захотел)))

вот измненил, но код на изменение элементов матрцы не хочет срабатывать((
посмотри пожалуйста что не так я сдела...
Код

// ConsoleApplication8.cpp: определяет точку входа для консольного приложения.
//

#include "stdio.h"
#include "stdafx.h"
#include "windows.h"
#include "math.h"
#include "conio.h"
#include "stdlib.h"
#define n 20

 int i,j,k;
 int dim = 0;
 int mt1[n][n];
 int mt2[n][n];
 int res[n][n];
 int tmp = 0;
 
 
void main()
{
   do 
   {
       /* вопрос о размерности */
       system ("cls");
       printf( "Please, enter matrix dimension:" );  
       scanf_s( "%d", &dim);
       if( dim <= 0 || dim > n ) 
       {
          printf( "Invalid value %d\n", dim);
          continue;
       }
 
       /* вопрос о заполнении матрицы (случайно, диагонально, с клавиатуры) */
       system ("cls");
       printf (" (1) - Aftozapolnenie\n (2) - Zapolnenie diagonali\n (3) - Vvod s klaviaturi\n (4) - Exit\n\n Please select: ");
       char iSelect = _getch();
       if( iSelect == '4' ) break;

       /* заполнение матриц в зависимости от выбора пользователя */
       switch( iSelect )
       {
          case '1': 
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   mt1[i][j]=rand();
                   mt2[i][j]=rand();
                 }
             break;

          case '2':
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   if (i==j)
                    mt1[i][j]=1;
                  else
                    mt1[i][j]=0;
                   if (i==j)
                    mt2[i][j]=1;
                  else
                    mt2[i][j]=0;
                }
             break;
                
          case '3':
              printf("\nEnter mt1:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s(" %d", &mt1[i][j]);
                 }
             
              printf("\nEnter mt2:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s( "%d", &mt2[i][j]);
                 }
                 break;
                
          default: 
             printf ("\n\nBad select, try again\n\n"); 
             _getch();  
             continue;
        }
    
    do 
      {
         /* печать матриц */
         system ("cls");
         printf("mt1:\n");
         for( i=0; i<dim ;i++)
         {
             for( j=0; j<dim; j++)
             {
               printf( " \t%d", mt1[i][j]);
             }
         putchar('\n');
         }

         printf("mt2:\n");
         for( i=0; i<dim ;i++)
         {
             for( j=0; j<dim; j++)
             {
               printf( " \t%d", mt2[i][j]);
             }
         putchar('\n');
         }
         _getch();  
             
         /* вопрос о редактировании матриц (хочу редактировать mt1, хочу редактировать mt2, не хочу редактировать) */
     
         system ("cls");
         printf (" (1) - Redaction mt1\n (2) - Redaction mt2\n (3) - Exit\n\n Please select: ");
         char iSelect = _getch();
         if( iSelect == '3' ) break;
         
         /* вопрос об редактируемом элементе (координаты+значение) */
         system ("cls");
         printf (" Enter x,y in [x,y] format: ");
       
         /* меняем значение у mt1 или mt2 */
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j); 
         printf (" New value: ");
         scanf_s ("%d", &tmp);
         

     }while (true);

        /* вопрос об операции с матрицами (сложение, вычитание) */
        system ("cls");
        printf (" (1) -  Mult\n (2) - Summa\n \n Please select: ");
        iSelect = _getch();

        /* выполнение операций над матрицами в зависимости от выбора пользователя */
       switch( iSelect )
        { 
         case '1':             
            for( i=0; i<dim; i++)
               for( j=0; j<dim; j++)
               {    
                   res[i][j] = 0;
                   for( k = 0; k<dim; k++)  res[i][j] += mt1[i][k] * mt2[k][j];
                }
            break;

         case '2': 
            for(i=0;i<dim;i++)
               for(j=0;j<dim;j++)
                  res[i][j] = mt1[i][j] + mt2[i][j];
            break;

         default: 
            printf ("\n\nBad select, try again"); 
            _getch();  
            continue;
        }

        /* печать операции и результата */
        printf( "Operation:\n %s\n", (iSelect == '1') ? "Multiplication" : "Addition");

        printf( "\nResult:\n" );
        for( i=0; i<dim ;i++)
        {
            for( j=0; j<dim; j++)
            {
                printf( " \t%d", res[i][j]);
            }
        putchar('\n');
        }
        _getch();  

   }while (true);
}


Это сообщение отредактировал(а) dimmon123 - 21.10.2012, 14:32
PM MAIL   Вверх
feodorv
Дата 21.10.2012, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  21.10.2012,  01:38 Найти цитируемый пост)
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j); 
         printf (" New value: ");
         scanf_s ("%d", &tmp);

Так эта... Сначала узнаём что на что меняем, и уж потом меняем, а не сначала меняем, потом узнаём  smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



Цитата(feodorv @  21.10.2012,  16:04 Найти цитируемый пост)
Так эта... Сначала узнаём что на что меняем, и уж потом меняем, а не сначала меняем, потом узнаём   

чет не понял где поменять надо, менял в разных местах бесполезно((

Код

   
        /* вопрос об редактируемом элементе (координаты+значение) */
         system ("cls");
         int i = 0, j = 0;
         printf (" Enter x,y in [x,y] format: ");
         scanf_s (" %i, %j", &i, &j);

         /* меняем значение у mt1 или mt2 */
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;
         
         printf (" Value [%i, %j] is: %d, %d", i, j);
         
         printf (" New value: ");
         scanf_s ("%d", &tmp);
         


Это сообщение отредактировал(а) dimmon123 - 21.10.2012, 18:44
PM MAIL   Вверх
feodorv
Дата 21.10.2012, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  21.10.2012,  19:18 Найти цитируемый пост)
чет не понял где поменять надо, менял в разных местах бесполезно((

Ну, я думаю, нужно менять со смыслом, а не в хаотическом порядке)))

Что делает строка
Цитата(dimmon123 @  21.10.2012,  19:18 Найти цитируемый пост)
         scanf_s ("%d", &tmp);

Почему она самая последняя? Это вместо printf?

printf - печатает, scanf считывает smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



feodorv, а как тогда надо написать?не догоняю я блин...это последнее задание осталось, а азавтра уже сдавать надо..

Это сообщение отредактировал(а) dimmon123 - 21.10.2012, 19:31
PM MAIL   Вверх
feodorv
Дата 21.10.2012, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  21.10.2012,  20:31 Найти цитируемый пост)
а как тогда надо написать?не догоняю я блин...

А я было подумал, что ты понимаешь, что делаешь  smile 

Цитата(feodorv @  21.10.2012,  17:04 Найти цитируемый пост)
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j); 
         printf (" New value: ");
         scanf_s ("%d", &tmp);

Ну, наверное, первые две строчки поставить последними:
Код

         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j); 
         printf (" New value: ");
         scanf_s ("%d", &tmp);

         if( iSelect == '1' ) mt1[i][j] = tmp; else mt2[i][j] = tmp;





--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



Цитата(feodorv @  21.10.2012,  20:04 Найти цитируемый пост)
А я было подумал, что ты понимаешь, что делаешь   

что то понимаю что то нет, вот и возникают вопросов куча))

сделал как ты сказал, перенес в конеч и все равно не выходит(

Добавлено через 14 минут и 14 секунд
вот сделал так:
Код

 /* вопрос об редактируемом элементе (координаты+значение) */
         system ("cls");
         printf (" Enter x,y in [x,y] format: ");
       
         /* меняем значение у mt1 или mt2 */
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j); 
         printf (" New value: ");
         scanf_s ("%d", &tmp);
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;



эффекта ноль, как было так и осталось

Это сообщение отредактировал(а) dimmon123 - 21.10.2012, 20:16
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



feodorv, а дургие варианты могут быть?
PM MAIL   Вверх
feodorv
Дата 21.10.2012, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  21.10.2012,  21:41 Найти цитируемый пост)
feodorv, а дургие варианты могут быть? 

В смысле? Давайте переставлять строчки, авось получится???)))

Цитата(dimmon123 @  21.10.2012,  21:09 Найти цитируемый пост)
 /* вопрос об редактируемом элементе (координаты+значение) */
         system ("cls");
         printf (" Enter x,y in [x,y] format: ");
       
         /* меняем значение у mt1 или mt2 */
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         printf (" Value [%i, %j] is: %d, %d", i, j,res); // <-- в самый конец
         printf (" New value: ");
         scanf_s ("%d", &tmp);
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;

Вот откуда взялся спецификатор %j??? Должен быть просто %i.

Это сообщение отредактировал(а) feodorv - 21.10.2012, 22:28


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



Цитата(feodorv @  21.10.2012,  22:25 Найти цитируемый пост)
Вот откуда взялся спецификатор %j???

там надо поставить %i?
PM MAIL   Вверх
feodorv
Дата 21.10.2012, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dimmon123 @  21.10.2012,  23:28 Найти цитируемый пост)
там надо поставить %i? 

По хорошему, должно стоять %d (d - от decimal), %i - это устаревший спецификатор (от integer).

Лучше всего, всё-таки, изучить семейство функций printf и правила оформления форматной строки, загляните хотя бы сюда.


Это сообщение отредактировал(а) feodorv - 21.10.2012, 22:35


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dimmon123
Дата 21.10.2012, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.10.2012

Репутация: нет
Всего: нет



feodorv, у нас же везде было i  и j. мы их в самом начаде вводили
Код

// Лаба3.cpp: определяет точку входа для консольного приложения.
//

#include "stdio.h"
#include "stdafx.h"
#include "windows.h"
#include "math.h"
#include "conio.h"
#include "stdlib.h"
#define n 20

 int i,j,k;
 int dim = 0;
 int mt1[n][n];
 int mt2[n][n];
 int res[n][n];
 int tmp = 0;
 
 
void main()
{
   do 
   {
       /* вопрос о размерности */
       system ("cls");
       printf( "Please, enter matrix dimension:" );  
       scanf_s( "%d", &dim);
       if( dim <= 0 || dim > n ) 
       {
          printf( "Invalid value %d\n", dim);
          continue;
       }
 
       /* вопрос о заполнении матрицы (случайно, диагонально, с клавиатуры) */
       system ("cls");
       printf (" (1) - Aftozapolnenie\n (2) - Zapolnenie diagonali\n (3) - Vvod s klaviaturi\n (4) - Exit\n\n Please select: ");
       char iSelect = _getch();
       if( iSelect == '4' ) break;

       /* заполнение матриц в зависимости от выбора пользователя */
       switch( iSelect )
       {
          case '1': 
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   mt1[i][j]=rand();
                   mt2[i][j]=rand();
                 }
             break;

          case '2':
             for( i=0; i<dim; i++)
                for( j=0; j<dim; j++)
                {
                   if (i==j)
                    mt1[i][j]=1;
                  else
                    mt1[i][j]=0;
                   if (i==j)
                    mt2[i][j]=1;
                  else
                    mt2[i][j]=0;
                }
             break;
                
          case '3':
              printf("\nEnter mt1:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s(" %d", &mt1[i][j]);
                 }
             
              printf("\nEnter mt2:\n");
              for( i=0; i<dim; i++)
                 for( j=0; j<dim; j++)
                 {
                    printf("  Element %d, %d:  ", i, j);
                    scanf_s( "%d", &mt2[i][j]);
                 }
                 break;
                
          default: 
             printf ("\n\nBad select, try again\n\n"); 
             _getch();  
             continue;
        }
    
    do 
      {
         /* печать матриц */
         system ("cls");
         printf("mt1:\n");
         for( i=0; i<dim ;i++)
         {
             for( j=0; j<dim; j++)
             {
               printf( " \t%d", mt1[i][j]);
             }
         putchar('\n');
         }

         printf("mt2:\n");
         for( i=0; i<dim ;i++)
         {
             for( j=0; j<dim; j++)
             {
               printf( " \t%d", mt2[i][j]);
             }
         putchar('\n');
         }
         _getch();  
             
         /* вопрос о редактировании матриц (хочу редактировать mt1, хочу редактировать mt2, не хочу редактировать) */
         system ("cls");
         printf (" (1) - Redaction mt1\n (2) - Redaction mt2\n (3) - Exit\n\n Please select: ");
         char iSelect = _getch();
         if( iSelect == '3' ) break;
         
         /* вопрос об редактируемом элементе (координаты+значение) */
         system ("cls");
         printf (" Enter x,y in [x,y] format: ");
       
         /* меняем значение у mt1 или mt2 */
         int i = 0, j = 0;
         scanf_s (" %i, %j", &i, &j);
         
         printf (" New value: ");
         scanf_s ("%d", &tmp);
         if( iSelect == '1' ) mt1[i][j] = tmp; 
         else mt2[i][j] = tmp;
         printf (" Value [%i, %j] is: %d, %d", i, j, res);
         _getch();

     }while (true);

        /* вопрос об операции с матрицами (сложение, вычитание) */
        system ("cls");
        printf (" (1) -  Mult\n (2) - Summa\n \n Please select: ");
        iSelect = _getch();

        /* выполнение операций над матрицами в зависимости от выбора пользователя */
       switch( iSelect )
        { 
         case '1':             
            for( i=0; i<dim; i++)
               for( j=0; j<dim; j++)
               {    
                   res[i][j] = 0;
                   for( k = 0; k<dim; k++)  res[i][j] += mt1[i][k] * mt2[k][j];
                }
            break;

         case '2': 
            for(i=0;i<dim;i++)
               for(j=0;j<dim;j++)
                  res[i][j] = mt1[i][j] + mt2[i][j];
            break;

         default: 
            printf ("\n\nBad select, try again"); 
            _getch();  
            continue;
        }

        /* печать операции и результата */
        printf( "Operation:\n %s\n", (iSelect == '1') ? "Multiplication" : "Addition");

        printf( "\nResult:\n" );
        for( i=0; i<dim ;i++)
        {
            for( j=0; j<dim; j++)
            {
                printf( " \t%d", res[i][j]);
            }
        putchar('\n');
        }
        _getch();  

   }while (true);
}


Это сообщение отредактировал(а) dimmon123 - 21.10.2012, 22:49
PM MAIL   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1502 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.