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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2016, 01:12   #1
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию Язык Си. Простой код, но не пойму почему выводятся разные матрицы.

В чем ошибка? Ведь вывод должен быть одинаковым.

Код:
#include <math.h>
#include <stdio.h>
int main(void)
{
int I[5],J[5],i,j;	

  for (i=0; i<=4; i++)   
  { 
     for (j=0; j<=4; j++)
     {
      I[i]=rand()%10;
      J[j]=rand()%10;
      printf("(%d,%d) ",I[i],J[j]);
      }
   printf("\n"); 
  }
  printf("\n");


  for (i=0; i<=4; i++)   
  { 
     for (j=0; j<=4; j++)
     { 
     printf("(%d,%d) ",I[i],J[j]);     
     }
  printf("\n");
  }

}
Изображения
Тип файла: jpg hDgB77XTEis.jpg (59.7 Кб, 134 просмотров)
Ar2emiS вне форума Ответить с цитированием
Старый 17.11.2016, 01:33   #2
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Ar2emiS Посмотреть сообщение
Ведь вывод должен быть одинаковым.
Нет.
Код:
for (i=0; i<=4; i++)   
  { 
     for (j=0; j<=4; j++)
     {
      I[i]=rand()%10;
      J[j]=rand()%10;
      printf("(%d,%d) ",I[i],J[j]);
      }
   printf("\n"); 
  }
Смотри:
Первая итерация for (i=0; i<=4; i++) i=0

Код:
for (j=0; j<=4; j++)
     {
      I[i]=rand()%10;
Тут ты 5 раз перезаписываешь одну I[0].
Смотрим дальше
Код:
 J[j]=rand()%10;
      printf("(%d,%d) ",I[i],J[j]);
Выводишь на экран перезаписанный I[0] 5 раз.

Вторая итерация for (i=0; i<=4; i++) i=1
5 раз перезаписываешь одну I[1].
Выводишь на экран перезаписанный I[1] 5 раз.
И так дальше.

А в
Код:
 for (i=0; i<=4; i++)   
  { 
     for (j=0; j<=4; j++)
     { 
     printf("(%d,%d) ",I[i],J[j]);     
     }
  printf("\n");
  }
Ты просто выводишь. Приглядись, все 2-е числа по столбцу одинаковые. И все первые числа по строке одинаковые.
1 итерация. i=0 j=0
5 раз выводишь I[0] - они одинаковые и так будет в каждой строчке. J[0] - они разные, но будут повторяться в каждом столбце матрицы.

Как звучит условие задачи? Может тут нужен двумерный массив?

Последний раз редактировалось Artsiom; 17.11.2016 в 01:38.
Artsiom вне форума Ответить с цитированием
Старый 17.11.2016, 07:41   #3
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию

Точно!) В том и дело,что нужно два параллельных массива для хранения номеров некоторых элементов матрицы.
Ar2emiS вне форума Ответить с цитированием
Старый 17.11.2016, 08:14   #4
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Но ты же их заполняешь рандомно.
??
Код:
  for (i=0; i<=4; i++)   
  { 
     I[i]=rand()%10; 

     J[i]=rand()%10;

     printf("(%d,%d) ",I[i],J[i]);
  }
Будет типа:
(1,3) (2,6) (4,9) (1,7) (8,2)

А если нужно как на скрине, то используй 2-а двумерных массива.
Код:
  int I[5][5];
  int J[5][5];
  int i, j;

  for(i=0; i<5; i++)
   {
    for(j=0; j<5; j++)
     {
       I[i][j]=rand()%10;

       J[i][j]=rand()%10;

       printf("(%d,%d) ",I[i][j], J[i][j]);
    }
  }

Последний раз редактировалось Artsiom; 17.11.2016 в 08:20.
Artsiom вне форума Ответить с цитированием
Старый 17.11.2016, 14:09   #5
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию

спасибо!
Ar2emiS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не выводятся строки в консоль?(С++) GooderSteel Помощь студентам 3 12.10.2014 22:02
Не пойму почему Borkot Общие вопросы C/C++ 3 09.06.2013 22:33
не могу понять почему не правильно выводятся числа массива Nikitos_ Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2012 11:52
простой код...почему выдает ошибку access violation at address!?? sleevman Помощь студентам 2 28.10.2009 20:47
Почему данные не сохраняются или не выводятся? SnowFall Помощь студентам 4 12.05.2009 01:21