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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Код:
#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 в 19:04.
East Undia Trading вне форума   Ответить с цитированием
Старый 15.12.2013, 19:05   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,840
Репутация: 6850
По умолчанию

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

skype: forwardbiznes
По умолчанию

Зачем такие сложности? У квадратной матрицы, количество строк и столбцов одинаково.
Код:
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 в 06:17.
Smitt&Wesson вне форума   Ответить с цитированием
Старый 15.12.2013, 21:34   #4
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Адрес: Санкт-Петербург
Сообщений: 231
Репутация: -6
По умолчанию

Код:
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, 22:10   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
Репутация: 1941
По умолчанию

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

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

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

Цитата:
Что я не так делаю?
Откуда я знаю? Я не компилятор )
А вообще лучше по отдельности по диагоналям пройтись чем цикл по всем элементам гонять:
Код:
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 вне форума   Ответить с цитированием
Старый 16.12.2013, 00:10   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,090
Репутация: 5656
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


00:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.