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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2012, 19:54   #1
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию Матрицы

Дана квадратная матрица А порядка М.Найти среднее арифметическое элементов её побочной диагонали, то есть диагонали , содержащей следующие элементы : A1;м , A2;м-1, A3;м-2, ..., Aм;1
Объясните пожалуйста цикл:
Код:
for (int i=M-1, j=0; i >= 0; i--,j++)   
    {
        sum += matr[i][j];
    }
Текст программы:
Код:
#include "stdio.h"
#include <conio.h>
 
int main()
{
    int matr[10][10];
    int M,sum=0;
    double sr;
    printf("Vvedite razmer matrizi:\n"); 
    scanf("%d",&M);
    for (int i=0; i<M; i++) 
    {       
        for (int j=0; j<M; j++) 
        {
            matr[i][j] = (i+1)*(j+1);
        }
    }
    for (int i=M-1, j=0; i >= 0; i--,j++)   
    {
        sum += matr[i][j];
    }
    sr = sum / (double)M;
    printf("srednee arifmeticheskoe = %lf\n", sr);
    for (int i=0; i<M; i++) 
    {       
        for (int j=0; j<M; j++) 
        {
            if (j+1 == M) printf("%d\n",matr[i][j]);
            else printf("%d ",matr[i][j]);
        }
    }
    getch();
    return 0;
}

Последний раз редактировалось Stilet; 22.10.2012 в 21:35.
P91 вне форума Ответить с цитированием
Старый 22.10.2012, 21:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Объясните пожалуйста цикл:
По факту здесь в цикле одновременно изменяются две переменные - одна (j) ведет цикл с верху вниз матрицы, проходя по строкам, другая (i) из правого крайнего элемента в крайний левый, уменьшаясь на единицу, поскольку смысл побочной диагонали в том, что она начинается справа, потому и i будет уменьшаться на единицу проходя от последней колонки к первой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каждой строке матрицы А(n*n) найти наибольший и наименьший элементы матрицы и поменять их местами saha1994 Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2012 20:38
Первый элемент - размерность матрицы, остальные образуют строки этой матрицы Anastasiya_Pot Помощь студентам 2 10.04.2012 09:46
Язык СИ! Динамическое выделение памяти под массивы и матрицы, передача матрицы в функции Андрей! Общие вопросы C/C++ 33 31.01.2012 22:07
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19