C/C++

Программирование на языке C++. Двухмерные массивы чисел

Срочно нужна помощь в решении контрольной работы!! Нужно выполнить задания под буквой Б
Задача 2

#include <iostream>
#include <random>
using namespace std;
int main() {
const auto x = 100;
int matrix[x][x];
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
cout << "n: ";
int n;
cin >> n;
puts("");
if (n > x) n = x;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
matrix[i][j] = uid(gen);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) cout << matrix[i][j] << ' ';
puts("");
}
puts("");
int sum = 0;
for (int i = 0; i < n; ++i) sum += matrix[i][i];
int m = n - 1;
for (int i = 0; i < n; ++i) sum += matrix[i][m - i];
if (n & 1) sum -= matrix[m >> 1][m >> 1];
cout << "Sum: " << sum << '\n';
system("pause > nul");
}
ДО
Дарын Орманов
52 384
Лучший ответ
Примерно так
arr[8][8]={{1,1,1,1,1,1,1,1}};for(int i=1;i<8;i++)for(k=0;k<8;k++)arr[i][k]=arr[i-1][k]*x[k];
Лёня Балахонов
Лёня Балахонов
79 302
#include<stdio.h>
int main()
{
float start[8];
float matrix[8][8];
printf("Enter 8 digits:");
for(int i=0;i<8;i++)
{
printf("\n digit %d = ",i+1);
scanf("%f",&start[i]);
};
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
{
if(i==0) matrix[i][j]=1;
if(i==1) matrix[i][j]=start[j];
if(i>1)
{
matrix[i][j]=1;
for(int m=0;m<i;m++)
matrix[i][j]*=start[j];
}
}
for(int i=0;i<8;i++){
for(int j=0;j<8;j++)
{
printf("%.1f,",matrix[i][j]);
}
printf("\n");
}
return 0;
}