C/C++

C++ двумерный статич. массив

Двумерный статический массив: 4 на 4, запросить числа и вывести в виде матрицы, потом каждое число в 3 строчке умножить на 2, вывести измененную матрицу

Вот основа

#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int arr_1[4][4], i, k;

cout << "введите числа\n";
for (i = 0; i < 4; i++) {

for (k = 0; k < 4; k++)
{
cin >> arr_1[i][k];
}
}

cout << "вот массив: \n";

for (i = 0; i < 4; i++) {
cout << "\n";
for (k = 0; k < 4; k++)
{
cout << " " << arr_1[i][k];
}
}
cout << "\n измененный массив: \n";
for (i = 0; i < 4; i++) {
cout << "\n";
for (k = 0; k < 4; k++)

{
cout << " " << arr_1[i][k];
}
}

}
for (int i = 0; i < 4; i++) arr_1[2][i]<<=1;
// <<=1 тоже самое что *=2 для интов
Вот такую строчку вставьте перед выводом измененного массива.
LL
Leon Leonard
51 416
Лучший ответ
Леонид Карпалов а можно как-то другим способом? пожалуйста, очень нужно
Leon Leonard for (int i = 0; i < 4; i++) arr_1[2][i] = arr_1[2][i] * 2; - куда уж примитивнее
Leon Leonard Ну может пока копировали i<4 превратилось в i<3?
#include <iostream>
using namespace std;
int main(){
const size_t n=4; int a[n][n]; cout<<"Numbers:\n";
for(int(&i)[n]:a)for(int &j:i)cin>>j; cout<<'\n';
for(int(&i)[n]:a){for(int &j:i)cout<<j<<'\t'; cout<<endl;}cout<<'\n';
for(int &j:a[2])j*=2;
for(int(&i)[n]:a){for(int &j:i)cout<<j<<'\t'; cout<<endl;}cout<<'\n';}
AB
Alexandr Borovskiy
67 624
Функция setlocale() придумана строго для использования типа wchar_t. Это стандарт Си.
Тогда вывод должен быть либо через wprintf(), либо через wcout.
Тупо не копируй исходный текст где попало, а читай умные книжки.
Пока это не изучишь и не поймёшь, нормально кодить не научишься.
АЯ
Артур Якупов
37 945
#include <iostream>

using namespace std;

template <class T>
void printMatrix(T *arr, int lines, int columns){
for(int i = 0; i < lines; i++){
for(int j = 0; j < columns; j++)
cout << *(*(arr + i) + j) << " ";
cout << "\n";
}
}

template <class T>
void modifyMatrix(T *arr, int lines, int columns, int changeLine, int multiplier){
for(auto &i: *(arr + changeLine))
i *= multiplier;
}

int main(){
const int N = 4;
int a[N][N];
cout << "Input elements in matrix:\n";
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
cin >> a[i][j];
cout << "Initial matrix:\n";
printMatrix(a, N, N);
modifyMatrix(a, N, N, 2, 2);
cout << "Altered matrix:\n";
printMatrix(a, N, N);
}