Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 15.12.2013, 16:50   #1
East Undia Trading
Форумчанин
 
Регистрация: 01.10.2013
Сообщений: 231
По умолчанию В квадратной матрице заменить элементы главной и побочной диагонали единицами.Язык Си.

Код:
#include <stdio.h>
#include <locale.h>
const int M = 2; // число строк
const int N = 2; // число столбцов
main()
{
setlocale(LC_ALL, "rus");
int i, j, k=0, A[M][N];
for ( i = 0; i < M; i ++ ) // цикл по строкам
for ( j = 0; j < N; j ++ ) // цикл по столбцам строки
{
printf ("A[%d][%d]=", i, j); // подсказка для ввода
scanf ("%d", & A[i][j]); // ввод A[i][j]
}
printf("Матрица A\n");
for ( i = 0; i < M; i ++ ) { // цикл по строкам
for ( j = 0; j < N; j ++ ) // вывод одной строки (в цикле)
A
printf ( "%4d", A[i][j] ); // 4 символа на число
printf("\n"); // переход на другую строку
}
}
Как мне записать проверку если столбец и строка ровны, то элемент равен единице и такое же условие для побочной диагонали?

Последний раз редактировалось Stilet; 15.12.2013 в 18:04.
East Undia Trading вне форума Ответить с цитированием
Старый 15.12.2013, 18:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

if(i==j || i==N-j-1) заменяем
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2013, 20:09   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,978
По умолчанию

Зачем такие сложности? У квадратной матрицы, количество строк и столбцов одинаково.
Код:
for(int i=0; i<N; i++) {A[i][i] = 1; A[N-i-1][N-i-1] = 1;}
И всех делов.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 16.12.2013 в 05:17.
Smitt&Wesson вне форума Ответить с цитированием
Старый 15.12.2013, 20:34   #4
East Undia Trading
Форумчанин
 
Регистрация: 01.10.2013
Сообщений: 231
По умолчанию

Код:
for ( i = 0; i < M; i ++ ) { // цикл по строкам
for ( j = 0; j < N; j ++ ) // вывод одной строки (в цикле)
if(i==j || i==N-j-1)
{
A[i][j]=1;
}
printf ( "%4d", A[i][j] ); // 4 символа на число
printf("\n"); // переход на другую строку
Что я не так делаю?
East Undia Trading вне форума Ответить с цитированием
Старый 15.12.2013, 21:10   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
i < M
Цитата:
j < N
Бред.. матрица квадратная.. => N = M..
Poma][a вне форума Ответить с цитированием
Старый 15.12.2013, 21:29   #6
East Undia Trading
Форумчанин
 
Регистрация: 01.10.2013
Сообщений: 231
По умолчанию

Poma][a, вы о чем?
East Undia Trading вне форума Ответить с цитированием
Старый 15.12.2013, 21:36   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Посмотрите на свои циклы.
У Вас есть N и M.. Зачем? Матрица квадратная => N = M (так должно быть, а как у Вас - я не знаю).. => выбрасываем M
И приводить отрывок кода, без инициализации.. и спрашивать при этом где косяк.. не правильно.. (ИМХО)
Poma][a вне форума Ответить с цитированием
Старый 15.12.2013, 23:02   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Что я не так делаю?
Откуда я знаю? Я не компилятор )
А вообще лучше по отдельности по диагоналям пройтись чем цикл по всем элементам гонять:
Код:
for(int i=0;i<m;i++) a[i,i]=1;
for(int i=m-1,j=0;i>=0;i--) a[i,j++]=1;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2013, 23:10   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Виталий, в пост #3 код (с) Smitt&Wesson делает это за один цикл, а не за два...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2013, 17:28   #10
East Undia Trading
Форумчанин
 
Регистрация: 01.10.2013
Сообщений: 231
По умолчанию

Что не так работает?Даже по j прошелся - не работает.
East Undia Trading вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В целочисленной квадратной матрице наибольший элемент каждой строки поменять местами с элементом главной диагонали DesignGenius C# (си шарп) 0 18.10.2011 19:22
В квадратной матрице найти сумму элементов главной и побочной диагонали, среднее, min и max (Pascal) Brusik Помощь студентам 0 09.07.2011 16:01
Все элементы выше главной диагонали квадратной матрицы, заменить на минимальный элемент (VisualBasic) ride013 Помощь студентам 4 03.05.2011 19:40
Оптимизировать алгоритм вычисления сумм элементов главной и побочной диагонали в матрице - Delphi r9m Помощь студентам 5 04.02.2009 11:01
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 06:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS