Nabeel Munir Ответов: 4

C++ понимание формулы


Здравствуйте, у меня была тестовая задача для 2d-массивов, где мне нужно было написать код для печати следующего вывода.
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

Каким-то образом мне это удалось. У меня есть понимание того, как работают циклы и массивы, но формула, которую я в нее вложил, на самом деле не получилась. я пытался сделать что-то вроде "x+1", Что означает row+1, потому что мне нужно было добавить 1 в строки после каждого прохождения цикла. Но я получал противоположный результат, делая это. Нравится,
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
когда я сделал "y+1", то есть столбец+1, он сработал и дал мне нужный результат. Не мог бы кто-нибудь объяснить мне, как работает эта формула? Я пытался понять это сам, но не могу.
Спасибо. Ниже приведен код, который я написал.

Что я уже пробовал:

#include <iostream>
using namespace std;
int main()
{
	int a[4][4];
	int x,y;
	for (x = 0; x<=3; x++)
	{
		for (y = 0; y<=3; y++)
		{
			a[x][y]=y+1;
			}
		cout << endl;
	}
	cout << endl;

	for (x = 0; x<=3; x++) {
		for (y = 0; y<=3; y++) {
			cout << " " << a[x][y];
		}
		cout << endl;
	}	
}

4 Ответов

Рейтинг:
6

Richard MacCutchan

for (x = 0; x < 4; x++)
{
    for (y = 1; y <= 4; y++)
    {
        cout << y << ' ';
    }
    cout << endl;
}


Рейтинг:
32

CPallini

x это ряд номер (0-основывающийся).
y это колонка номер (0-основывающийся).
I для получения требуемого вывода вы должны поместить (в каждую строку) номер столбца (1основе), отсюда (y+1) Симплекс и унум.


Рейтинг:
23

Patrice T

Цитата:
Не мог бы кто-нибудь объяснить мне, как работает эта формула? Я пытался понять это сам, но не могу.

Отладчик также является отличным инструментом обучения, используйте его, чтобы увидеть, что делает ваш код, а затем поэкспериментируйте с различными решениями кода и посмотрите разницу в поведении.
Это улучшит вашу кривую обучения.
-----
Ваш код ведет себя не так, как вы ожидаете, и вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что вы должны делать, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.
Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
19

KarstenK

Сначала вам нужно заполнить массив правильными значениями. Представьте себе, что это шахматная доска.

Используйте отладчик в один шаг, чтобы лучше видеть, что делает ваш код. Отладчик также имеет расширяемую панель, где вы можете просматривать память.