Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
24 / 24 / 4
Регистрация: 13.06.2010
Сообщений: 183

Обясните код программы

06.08.2011, 12:58. Показов 1124. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста код.
Вычислить количество положительных элементов квадратной матрицы, расположенных по ее периметру и на диагоналях.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <iostream.h>
#include <malloc.h>
int main(int argc, char* argv[])
{
     float *a;
     int i,j,n,k=0;
     cout<<"n="; cin>>n;
     cout<<"Vvod matrici"<<endl;
     a=(float *)calloc(n*n,sizeof(float));
     for(i=0;i<n;i++)
         for(j=0;j<n;j++)
              cin>>*(a+i*n+j);
     cout<<"Matrica"<<endl;
     for(i=0;i<n;i++)
     {
         for(j=0;j<n;j++)
              cout<<*(a+i*n+j)<<"\t";
         cout<<endl;
     }
     for(i=0;i<n;i++)
     {
         if (*(a+i*n+i)>0) k++;
         if( *(a+i*n+n-i-1)>0) k++;
     }
         cout<<"k="<<k<<endl;
         for(i=1;i<n-1;i++)
         {
              if (*(a+0*n+i)>0 ) k++;
              if (*(a+i*n+0)>0) k++;
              if (*(a+(n-1)*n+i)>0) k++;
              if (*(a+i*n+n-1)>0) k++;
         }
         cout<<"k="<<k<<endl;
         if (n%2!=0 && *(a+(n-1)/2*n+(n-1)/2)>0) k--; //проверка четности матрицы
         cout<<"k="<<k<<endl;
free(a); 
return 0;
}
Непонятны вот этот блок
C++
1
2
3
4
5
for(i=0;i<n;i++)
     {
         if (*(a+i*n+i)>0) k++;
         if( *(a+i*n+n-i-1)>0) k++;
     }
и вот этот
C++
1
2
3
4
5
6
7
 for(i=1;i<n-1;i++)
         {
              if (*(a+0*n+i)>0 ) k++;
              if (*(a+i*n+0)>0) k++;
              if (*(a+(n-1)*n+i)>0) k++;
              if (*(a+i*n+n-1)>0) k++;
         }
Т.е. в этих блоках и происходит поиск нужных элементов. А можете объяснить очень подробно как это происходит. Пока с матрицами не подружилась еще
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.08.2011, 12:58
Ответы с готовыми решениями:

Составить блок схему для программы упорядочивания чисел в массиве(код программы прилагается)
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { int N = 0; // N - количество элементов в массиве...

Обясните про функцию bioskey()
:help: Обясните как работать з bioskey на С. Бо надо сделать задания(создать меню с использованиям bioskey с помощью стрелок і Ентер).А я...

Структуры.Обясните что это
Здрасте :) !Я ни как не могу понять что означает &quot;структуры&quot;.Помогите пожалуста ответте на вопросы: 1.Что такое структуры? 2.Зачем они...

2
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
06.08.2011, 13:05
Это реализация двухмерного массива через одномерный.
Обычно двухмерную матрицу ROWSxCOLS представляют с помощью "массива массивов"
C
1
int array1[ROWS][COLS];
Доступ к элементу строки i и столбца j в этом случае
C
1
val = array1[i][j];
Но то же самое можно получить и с помощью обычного одномерного массива с размером ROWS*COLS:
C
1
int array2[ROWS*COLS];
Тогда нужный индекс вычисляется так:
C
1
val = array2[i*COLS + j];
Ну а с помощью указателей это можно записать и так:
C
1
val = *(array2 + i*COLS + j);
1
24 / 24 / 4
Регистрация: 13.06.2010
Сообщений: 183
06.08.2011, 16:43  [ТС]
grizlik78Теперь разобралась, спасибо большое!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2011, 16:43
Помогаю со студенческими работами здесь

Перевести код программы Паскаля в код С++
В массиве Х (15) найти произведение и количество элементов расположенных между наибольшими и наименьшими элементами кто может перевести...

Дайте источник или обясните\решыте)
1.Описать структуру з именем SKLAD, яка содержит следующие поля: NAME - название товару; TYPE - единица измерения товару; QUANTITY -...

Обясните пожалуйста все про классы в С++
Потолковее и доходчиво,а то читаю С++ сам изучаю вапще тема не понятна

код программы в c++
Что означает восклицательный знак в перед (b%2) в строке { if (!(b%2)) { a+=b;};? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Код программы
Если есть исходники программы, в котором из файлов хранится код программы и можно ли его от туда извлечь?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru