Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
kef1rman
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 6
1

Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк.

19.01.2012, 19:44. Просмотров 3056. Ответов 3
Метки нет (Все метки)

Написать программу по заданию:Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк.Необходимо написать программу в 2-х вариантах:с использованием указателей и без использования указателей.

Примеры:1:Найти максимальную сумму элементов строк матрицы 3*5.Пример программы без использования указателей:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
void main()
{
int a[3][5], i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (%5d”, a[i][j]);
    printf (“\n”);
  }
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      s+=a[i][j];
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
2:Найти максимальную сумму элементов строк матрицы 3*5.
Пример программы с использованием указателей:
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
#include <stdio.h>
void main()
{
int a[3][5], *Р, i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (%5d”, a[i][j]);
    printf (“\n”);
  }
P=&a[0][0];
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      {s+=*P;
        P++;
      }
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
 Комментарий модератора 
Используйте теги форматирования кода!


Работаем в проге Borland C++
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 19:44
Ответы с готовыми решениями:

Дана матрица, получить вектор наибольших значений ее строк
Дана матрица A(n*m). Получить вектор b1, b2, ..., bn, где bi равно наибольшему значению в строке.

Дана матрица размера M × N. Найти максимальный среди минимальных элементов ее строк
Здравствуйте! Помогите, пожалуйста, с решением. Дана матрица размера M × N. Найти максимальный...

Дана матрица размера M x N. Найти суммы элементов всех ее четных строк и нечетных столбцов
Ребята, помогите пожалуйста. Не могу понять, почему не работает. Точнее она работает, но не до...

Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы
Дана матрица размером 6 x 6. Найти сумму наименьших элементов ее нечетных строк и наибольших...

Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n*n крест-накрест
Здравствуйте, помогите с заданием. Дана действительная квадратная матрица порядка 2n. Получить...

3
soon
2547 / 1312 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.01.2012, 19:57 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(NULL));
    int **arr;
    int cols, rows;
    int i, j;
    int sum = 0;
    size_t posMax = 0;
    
    scanf("%d%d", &rows, &cols);
    arr = (int**)malloc(rows * sizeof(int*));
    for(i = 0; i < rows; ++i)
    {
        arr[i] = (int*)malloc(cols * sizeof(int));
        for(j = 0; j < cols; ++j)
        {
            arr[i][j] = rand() % 21;
            printf("%d\t", arr[i][j]);
            if(arr[i][j] > arr[i][posMax])
                posMax = j;
        }
        sum += arr[i][posMax];
        posMax = 0;
        printf("\n");
        free(arr[i]);
    }
    printf("sum max elements in each row = %d\n", sum);
    free(arr);
    return 0;
}
С указателями
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(NULL));
    int **arr;
    int cols, rows;
    int i, j;
    int sum = 0;
    size_t posMax = 0;
    
    scanf("%d%d", &rows, &cols);
    arr = (int**)malloc(rows * sizeof(int*));
    for(i = 0; i < rows; ++i)
    {
        *(arr + i) = (int*)malloc(cols * sizeof(int));
        for(j = 0; j < cols; ++j)
        {
            *(*(arr + i) + j) = rand() % 21;
            printf("%d\t", *(*(arr + i) + j));
            if(*(*(arr + i) + j) > *(*(arr + i) + posMax))
                posMax = j;
        }
        sum += *(*(arr + i) + posMax);
        posMax = 0;
        printf("\n");
        free(*(arr + i));
    }
    printf("sum max elements in each row = %d\n", sum);
    free(arr);
    return 0;
}
1
kef1rman
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 6
20.01.2012, 12:25  [ТС] 3
Спасибо большое вам!!Очень помогли!И чрезвычайно быстро.
Теперь посмотрим примут ли.

Добавлено через 15 часов 59 минут
Не подскажите ещё блок схемы по этим программам если вам не трудно?
0
soon
2547 / 1312 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 13:12 4
Псевдокод могу. А по составлению блок-схем тут написано
Код
sum = 0
posMax = 0
Пока i < rows
    Пока j < cols
        Если arr[i][j] < arr[i][posMax]
            posMax = j
        j++
    sum += arr[i][posMax]
    i++
Вывести sum
1
20.01.2012, 13:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 13:12

Дана целочисленная матрица размера n × m. Найти количество ее строк, все элементы которых различны
Решите задачи данной группы, оформив решение в виде процедур генерации, вывода и обработки...

Дана действительная матрица размера m x n. Найти сумму наибольших значений элементов ее строк.
Дана действительная матрица размера m x n. Найти сумму наибольших значений элементов ее строк.

Дана действительная матрица m на n. Найти сумму наибольших значений элементов её строк
Помогите пожалуйста. Очень вас прошу. Я вообще сегодня первый раз написала программу на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru