массив вопросов (домашнее задание) - PullRequest
1 голос
/ 24 февраля 2011

Я застрял на нескольких последних задачах из массива.Кто-нибудь может протянуть руку?

Написать операторы C ++, которые делают следующее:

  1. сохранить 5 в первом столбце массива и убедиться, что значение в каждом последующемстолбец в два раза больше значения в предыдущем столбце.

  2. печать массива по одной строке на строку.

  3. печать массива по одному столбцу на строку.

Я думаю, что это сработает для вопроса №2:

for (row = 0; row < 10; row++)
     {
         for (col = 0; col < 20; col++)
             cout << alpha[row][col] << " ";

             cout << endl;
     }     

, но вопросы 1 и 3 поставили меня в тупик.спасибо

Вот что я придумал после ваших советов.спасибо всем

3.

for (col = 0; col < 20; ++col)
     {
         for (row = 0; row < 20; ++row)
             cout << alpha[row][col] << " ";

             cout << endl;
     }     

1.

for (row = 0; row < 10; row++)
   alpha[row][0] = 5;

   for (col = 1; col < 20; col++)
       for (row = 0; row < 10; row++)
       alpha[row][col]=alpha[row][col-1]*2;

Ответы [ 4 ]

1 голос
/ 24 февраля 2011

Для # 1, запустите цикл, который начинается с нуля и продолжается до количества строк.В каждой итерации просто присваивайте 5 array[row][0]=5 (поскольку столбец 0 является первым столбцом).

Теперь выполните цикл от 1 до количества столбцов.Внутри запустите еще одну петлю для каждого ряда.просто присвойте array[row][col]=array[row][col-1]*2.

Для # 3 просто измените порядок циклов.Мы перебираем все столбцы, и для каждого столбца мы должны перебирать все строки и после этого печатать новую строку.

Я бы опубликовал код, но вам лучше попытаться понять и написать код самостоятельно.

1 голос
/ 24 февраля 2011
  1. для каждой строки, вставьте 5 в первый столбец (индекс 0), затем в цикле итерируйте от 1 до требуемого числа, и значение в текущем столбце index = 2 * значение виндекс предыдущего столбца (т. е. col - 1).

  2. переупорядочить строку, циклы col.

1 голос
/ 24 февраля 2011

Хорошо для 1, просто возьмите предыдущее col и умножьте на 5. Поэтому, когда вы проходите цикл, это будет похоже на col [позиционируйте ваш сейчас] = col [prev pos] * 2

1 голос
/ 24 февраля 2011

Для вопроса № 3 просто измените порядок циклов, как

 for (col = 0; col < 20; col++)
 {
     for (row = 0; row < 10; row++)
         cout << alpha[row][col] << " ";
     cout << endl;
 }   

Разве это не просто?

Для вопроса № 1, просто используйте тот же обратный порядок циклов, и сделайте это

 int value = 5;
 for (col = 0; col < 20; col++)
 {
     for (row = 0; row < 10; row++)
         alpha[row][col] = value;
     value = 2 * value;
 }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...