Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
139 / 139 / 39
Регистрация: 26.02.2011
Сообщений: 548

Нахождение суммы элементов матрицы, оба индекса которых четные

03.03.2012, 20:51. Показов 883. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите подкорректировать следующие функции

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int sum(int **math,int m, int n)
{
    int x1,x2,summa=0;
    for(x1=0;x1<m;x1++)
      {
          for(x2=0;x2<n;x2++)
             {
                 if ((x1 % 2 ==0)&&(x2 % 2 == 0))
                 {
                      summa=summa+math[x1][x2];
                 }
             }
      }
                          printf("Summa: %d",summa);
}
Данная функция по идее писал для нахождения Суммы элементов, оба индекса которых четные.Например элемент
[2][4] подходит, а [1][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
int sort(int **math,int m, int n) 
{
    int x1,x2,k,s=0;
    printf("\n");
    printf("\tNew Matrix:\n\n");
for (x1=0; x1<m; x1++)
{
  for (k=n-1; k>0; k--)
  {
    for (x2=0; x2<k; x2++)
    {
      if (math[x1][x2] >math[x1][x2+1]) 
      {
                       s=math[x1][x2]; 
                           math[x1][x2]=math[x1][x2+1];
                             math[x1][x2+1]=s;
      }
    }
  }
}
for (x1=0; x1<m; x1++)          
             {
             for (x2=0; x2<n; x2++)
             {
             printf(" %d",math[x1][x2]);    
             }
             printf("\n");
             }
}
Сортировка строк в матрице по не убыванию их наибольших элементов.Она сортирует эллементы в самих строках,но не сортирует строки,надо чтобы строки только сортировала,например

Пример

Code
1
2
3
1 2 7 
4 3 5
2 0 9
Должно выдать

Code
1
2
3
4 3 5 //наибольший элемент 5
1 2 7 //наибольший элемент 7
2 0 9 //наибольший элемент 9
А сейчас выдает

Code
1
2
3
1 2 7 
3 4 5
0 2 9
Помогите доделать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2012, 20:51
Ответы с готовыми решениями:

Вычислить сумму элементов матрицы, оба индекса которой четные
Дана целочисленная квадратная матрица. Вычислить сумму элементов, оба индекса которой четные

Найти среднее арифметическое чисел, оба индекса которых четные
Заполнить матрицу m*n с клавиатуры. Найти среднее арифметическое чисел, оба индекса которых четные

Определить в массиве среднее геометрическое элементов, у которых оба индекса нечетные
1) Ввести двумерный массив А 3х5. Определить в нём среднее геометрическое элементов, у которых оба индекса нечетные. 2) Ввести двумерный...

2
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
03.03.2012, 22:59
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
По идее берем по остатку от деления и если ноль то считаем число если нет то отбрасываем,но не так как надо работает(некорректно).Помогите подправить
Делать проверки необязательно, можно перемещаться непосредственно по каждому второму элементу строки\столбца
C
1
2
3
4
5
6
7
8
9
10
int sum(int** math, int m, int n)
{
   int x1, x2;
   int s = 0;
 
   for(x1 = 0; x1 < m; x1+= 2)
      for(x2 = 0; x2 < n; x2+= 2)        
     s+= math[x1][x2];
   return s;
}
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
Сортировка строк в матрице по не убыванию их наибольших элементов.Она сортирует эллементы в самих строках,но не сортирует строки,надо чтобы строки только сортировала,например
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
int max(int* a, int n)
{
   int i;
   int res = a[0];
   for(i = 1; i < n; ++i)   
      if(a[i] > res) res = a[i];
   return res;
}
 
void sort_rows_by_max(int** math, int m, int n) 
{
   int* t;
   int k, i;  
   
   for(k = 1; k < m; k++)
   {
      for(i = n-1; i >= k; i--)
      {         
     if(max(math[i-1], n) > max(math[i], n))
     {
        t = math[i]; 
        math[i] = math[i-1];
        math[i-1] = t;
     }   
      }
   }
}
1
139 / 139 / 39
Регистрация: 26.02.2011
Сообщений: 548
05.03.2012, 10:42  [ТС]
Где искать сумму четных индексов разобрался,весь гемор был в том что нумерация с нуля идет поэтому не тот ответ выдавало я в циклах нумерацию поставил с единицы,тоесть x1=1, x2=1,стало корректно выдавать ответ

Вот со вторым кодом пока не разобрался

Добавлено через 18 часов 43 минуты
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
int sort_rows(int **math,int m, int n) 
{
 int x1, x2, k, s = 0, *maxelems, notfin;
    printf("\n");
    maxelems = (int*)malloc(m*sizeof(int));//выделяем память под масив для строки
    for(x1=0; x1 < m; x1++) {
        maxelems[x1] = math[x1][0];//Начинаем с налача строки двигаться
        for(x2=1; x2 < n; x2++)//далее идем по столбцам строки
            if(maxelems[x1]  < math[x1][x2]) //и если елемент строки больше прдедущего
            maxelems[x1] = math[x1][x2];//то макимальный элемент строки присваеваем ему
    }
    printf("\n");
    printf("\tNew Matrix\n\n");
    notfin = 1;
    while(notfin) {
        notfin = 0;
        for (x1 = 0; x1 < m-1; x1++)
            if(maxelems[x1] > maxelems[x1+1]) {//если максимальный эл-т в строке больше следующего
                int *w = math[x1];
                int w1 = maxelems[x1];
                math[x1] = math[x1+1];
                math[x1+1] = w;
                maxelems[x1] = maxelems[x1+1];
                maxelems[x1+1] = w1;
                notfin = 1;
            }
    }
    for (x1 = 0; x1 < m; x1++){
        for (x2 = 0; x2 < n; x2++) {
            printf(" %d", math[x1][x2]);//вывод результата на консоль
        }
        printf("\n");}
    free(maxelems);//очищение памяти
}
Вообщем нашел вот код,он делает то что нужно,но до конца не разобрался,помогите разобраться.Запутался я,распутайте)закоментируйте пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2012, 10:42
Помогаю со студенческими работами здесь

Массивы: найти сумму всех элементов, у которых оба индекса нечетны
1. Создайте двумерный массив целочисленный массив А, и найдите сумму всех его элементов имеющие оба нечетные индексы. Если не сложно -...

Найти в двумерном массиве среднее геометрическое элементов у которых оба индекса нечетные
как определить в двумерном массиве среднее геометрическое элементов у которых оба индекса нечетные

Найти суму элементов матрицы, имеющих оба нечетных индекса
Помогите решить задачу. Создайте двумерный целочисленный массив A, заполните его случайный образом и найдите суму всех его элементов,...

Найдите сумму всех элементов матрицы, имеющих оба нечетных индекса
Создайте двумерный целочисленный массив А и найдите сумму всех его элементов, имеющих оба нечетных индекса.

Подсчитать количество элементов массива, у которых оба соседа - четные числа
Задан массив из 100 элементов целых чисел. Подсчитать кол-во элементов у которых оба соседа четные числа. Я то четные числа нахожу вот...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru