Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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,964
По умолчанию

Зачем такие сложности? У квадратной матрицы, количество строк и столбцов одинаково.
Код:
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
По умолчанию

Код:
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
По умолчанию

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

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

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

Цитата:
Что я не так делаю?
Откуда я знаю? Я не компилятор )
А вообще лучше по отдельности по диагоналям пройтись чем цикл по всем элементам гонять:
Код:
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,238
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В целочисленной квадратной матрице наибольший элемент каждой строки поменять местами с элементом главной диагонали 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 11:01
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15