Другие языки программирования и технологии
Помогите плиз, написать прогу на Си++! Срочно очень нужно!
Матрица называется диагональной, если все ее элементы за исключением диагональных равны нулю. Написать программу, которая проверяет, является ли матрица диа-гональной. Или просто прогу, задающую диагональную матрицу, хотя бы объясните, ПОЖАЛУЙСТА)))))
// Тамара_Вагина_2011-12-03
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
#define N 7
int main()
{
srand((unsigned) time(NULL));
int a[N][N] = {0};
int b[N][N] = {0};
bool first = true, second = true;
// Создание диагональной матрицы
for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < N; m++)
{
if (n == m) a[n][m] = rand() % 9 + 1;
cout << ' ' << a[n][m];
}
cout << endl;
// Создание квадратной матрицы
for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < N; m++)
{
b[n][m] = rand() % 9 + 1;
cout << ' ' << b[n][m];
}
// Проверка
for (int n = 0; n < N; n++)
{
for (int m = 0; m < N; m++)
{
if (n == m) continue;
if (a[n][m] != 0) first = false;
if (b[n][m] != 0) second = false;
}
if (first == false && second == false) break;
}
cout << endl << " Matrix 1 = " << boolalpha << first;
cout << endl << " Matrix 2 = " << boolalpha << second;
cin.get();
return 0;
}
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
#define N 7
int main()
{
srand((unsigned) time(NULL));
int a[N][N] = {0};
int b[N][N] = {0};
bool first = true, second = true;
// Создание диагональной матрицы
for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < N; m++)
{
if (n == m) a[n][m] = rand() % 9 + 1;
cout << ' ' << a[n][m];
}
cout << endl;
// Создание квадратной матрицы
for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < N; m++)
{
b[n][m] = rand() % 9 + 1;
cout << ' ' << b[n][m];
}
// Проверка
for (int n = 0; n < N; n++)
{
for (int m = 0; m < N; m++)
{
if (n == m) continue;
if (a[n][m] != 0) first = false;
if (b[n][m] != 0) second = false;
}
if (first == false && second == false) break;
}
cout << endl << " Matrix 1 = " << boolalpha << first;
cout << endl << " Matrix 2 = " << boolalpha << second;
cin.get();
return 0;
}
Честно говоря, не знаю, что тут еще можно объяснять. Таблица умножения и программа для ее создания- сложнее.
#include <iostream>
#include <iomanip>
#define N (4)
int main() {
int a[N][N];
std::cout << "enter matrix:" << std::endl;
int r, c;
for (r = 0; r < N; ++r) {
for (c = 0; c < N; ++c) {
std::cin >> a[r][c];
}
}
bool isdiagonal = true;
for (r = 0; r < N; ++r) {
for (c = 0; c < N; ++c) {
if (r != c && a[r][c] != 0) {
isdiagonal = false;
break;
}
}
if (!isdiagonal) {
break;
}
}
std::cout << std::boolalpha << isdiagonal;
return 0;
}
#include <iomanip>
#define N (4)
int main() {
int a[N][N];
std::cout << "enter matrix:" << std::endl;
int r, c;
for (r = 0; r < N; ++r) {
for (c = 0; c < N; ++c) {
std::cin >> a[r][c];
}
}
bool isdiagonal = true;
for (r = 0; r < N; ++r) {
for (c = 0; c < N; ++c) {
if (r != c && a[r][c] != 0) {
isdiagonal = false;
break;
}
}
if (!isdiagonal) {
break;
}
}
std::cout << std::boolalpha << isdiagonal;
return 0;
}
могу тебе скинуть лекции по программированию массивов
int[][] MATRIX =new int[10][10];//ну или как там определять не помню
//заполняем и поехали
for(int i=0;i<matrix.lengs;i++)>[j]=!1)
{//значит пройдя по диагонали есть не единичный}
}else//не на диагонали
break;
{
if(MATRIX[j]!=0)
{//один из не диагональных элементов отличен от нуля
break;
}
}
}
}
мда тупой майл весь код испортил, сука
//заполняем и поехали
for(int i=0;i<matrix.lengs;i++)>[j]=!1)
{//значит пройдя по диагонали есть не единичный}
}else//не на диагонали
break;
{
if(MATRIX[j]!=0)
{//один из не диагональных элементов отличен от нуля
break;
}
}
}
}
мда тупой майл весь код испортил, сука
пиши сама.. . тут всего 2 цикла в программе
Перебираем значения массива и если находим не нулевое значение то смотрим равны ли координаты по вертикали и горизонтали. Если равны то идем дальше.. . если не равны то вываливаемся из цикла и говорим ВАЙ МАТРИЦА НЕПРАВИЛЬНЫЙ!
Если же цикл отработает до конца то все хорошо.
А вообще можно реализовать 1000 способами ) без сравнения с 0 ) тупо посчитать сумму диагонали и матрицы в целом ) если равны то все ок ) правда программа от этого меньше не станет ) зато не как у всех
Перебираем значения массива и если находим не нулевое значение то смотрим равны ли координаты по вертикали и горизонтали. Если равны то идем дальше.. . если не равны то вываливаемся из цикла и говорим ВАЙ МАТРИЦА НЕПРАВИЛЬНЫЙ!
Если же цикл отработает до конца то все хорошо.
А вообще можно реализовать 1000 способами ) без сравнения с 0 ) тупо посчитать сумму диагонали и матрицы в целом ) если равны то все ок ) правда программа от этого меньше не станет ) зато не как у всех
Похожие вопросы
- Нужна срочно помощь. Помогите мне написать прогу на СИ, плиииз!!!
- помогите плиз написать программу на паскале...тема массивы...нужно использовать поиск деления пополам!!!нужно срочно!
- Помогите плиз написать программу(язык Си)
- помогите очень надо написать прогу на си
- как писать проги, и на чём очёнь нужно плиз аааааааааааааааааааааааааа
- помогите написать прогу в паскале срочно!!
- написал прогу на си с использованием рандома. всё работает, но всегда выводятся одни и те же числа.
- Помогите написать программу в СИ. буду очень благодарин
- Помогите решить написать программу в СИ пожалуйста
- Помогите пожалуйста написать прогу на Pascal, буду благодарен!