Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для Ketler
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 15

Подсчитать сумму элементов строки в массиве и присвоить значение первому элементу

28.09.2011, 21:09. Показов 1618. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void raschet (int x[I][J], int &nul , int &kol )
{ nul=0, kol=0; int i,j,z ;
    for (int i=0; i<I; i++)
    {
        x[i][0]=0;
         z+= x[i][j];
    }
          
    for (int j=0; j<J; j++)
x[i][0] =  z;
    
 
}
по замыслу функция должна подсчитывать сумму элементов строки в массиве и присваивать это значение первому элементу массива. Ан не работает... Как это можно исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2011, 21:09
Ответы с готовыми решениями:

Первому элементу массива присвоить значение второго
Люди добрые, объясните мне где я туплю. Нашел программу, все работает как надо. #include &lt;iostream&gt; #include &lt;stdio.h&gt; ...

Подсчитать количество элементов массива, равных первому элементу
Здравствуйте, есть задача: Написать программу, которая подсчитывает количество элементов массива (N значений вводится с клавиатуры),...

В одномерном массиве определить количество элементов, равных первому положительному элементу
В заданном одномерном массиве R(N) определить количество элементов, равных первому положительному элементу. Если таких элементов нет, то...

4
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
28.09.2011, 21:22
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Ketler Посмотреть сообщение
по замыслу функция должна подсчитывать сумму элементов строки в массиве и присваивать это значение первому элементу массива
тогда почему у вас на входе двумерный массив? ваша программа противоречит вашим словам, а в программировании принято называть вещи своими именами - описание должно точно соответствовать действию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void sum_of_array(int* arr, int size)
{
    for (int* i = arr + 1, *end = arr + size; i != end; ++i)
        *arr += *i;
}
 
int main()
{
    int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    for (int i = 0; i < 3; ++i)
    {
        sum_of_array(arr[i], 3);
        std::cout << arr[i][0] << '\n';
    }
    return 0;
}
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
28.09.2011, 21:31
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void fill_row(int *row, int count)
{
    while (count--)
        *row++ = rand() %100;
}
 
void fill_matrix(int **matrix, int rows, int columns)
{
    while (rows--)
        fill_row(matrix[rows], columns);
}
 
void show_row(int *row, int count)
{
    while (count--)
        printf("%3d ", *row++);
}
 
void show_matrix(int **matrix, int rows, int columns)
{
    while (rows--)
    {
        show_row(matrix[rows], columns);
        printf("\n");
    }
}
 
int sum_row(int *row, int count)
{
    int sum = 0;
    while (count--)
        sum += *row++;
    return sum;
}
 
void set_sum_in_column(int **array, int rows, int columns)
{
    int i;
    for(i = 0; i < rows; i++)
        array[i][0] = sum_row(array[i], columns);
}
 
int main(int argc, char ** argv)
{
    const int rows = 4;
    const int columns = 5;
    int i;
    int **array;
    srand(time(0));
    if (!(array = (int**)malloc(sizeof(int*) * rows)))
        return EXIT_FAILURE;
    for(i = 0; i < rows; i++)
        if (!(array[i] = (int*)malloc(sizeof(int) * columns)))
            return EXIT_FAILURE;
    fill_matrix(array, rows, columns);
    show_matrix(array, rows, columns);
    set_sum_in_column(array, rows, columns);
    printf("\b______________\n");
    show_matrix(array, rows, columns);
    for(i = 0; i < rows; i++)
        free(array[i]);
    free(array);
    system("pause");
    return 0;
}
0
 Аватар для Ketler
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 15
28.09.2011, 21:39  [ТС]
Извиняюсь, неправильно сформулировал задание.
Функция подсчитывает сумму элементов в каждой строке массива и присваивает это значение первому элементу этой-же строки массива.
Или x[i][0]=x[i][0] +....+ x[i][N]
Надеюсь так понятнее.
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
29.09.2011, 01:02
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ketler,
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>
 
int** sum_row(int **mat, int rows, int cols);
 
int main()
{
    srand(time(NULL));
    int **mat;
    int rows,cols;
    std::cout<<"Enter number rows -> ";
    std::cin>>rows;
    mat = new int*[rows];
    std::cout<<"Enter number cols -> ";
    std::cin>>cols;
    std::cout<<"Matrix: "<<std::endl;
     for(int i=0; i<rows; i++)
     {
         mat[i] = new int[cols];
          for(int j=0; j<cols; j++)
          {
              mat[i][j]=rand()%25;
              std::cout<<std::setw(5)<<mat[i][j]<<std::setw(5);
          }
         std::cout<<std::endl;
     }
    sum_row(mat,rows,cols);
    std::cout<<"New matrix:"<<std::endl;
    for(int i=0; i<rows; i++)
     {
          for(int j=0; j<cols; j++)
          {
              std::cout<<std::setw(5)<<mat[i][j]<<std::setw(5);
          }
         std::cout<<std::endl;
     }
    system("pause");
    return EXIT_SUCCESS;
}
 
// sum elements of strin
 
int** sum_row(int **mat, int rows, int cols)
{
     for(int i=0; i<rows; i++)
     {
         for(int j=1; j<cols; j++)
         {
             mat[i][0]+=mat[i][j];
         }
     }
    return mat;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2011, 01:02
Помогаю со студенческими работами здесь

В заданном одномерном массиве определить количество элементов, равных первому положительному элементу
В заданном одномерном массиве R(N) определить количество элементов, равных первому положительному элементу. Если таких элементов нет, то...

Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу массива
. Дан массив А(10). Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу

Используя массив присвоить каждому следующему элементу сумму текущего и предыдущего элементов
Необходимо написать программу, которая используя массив присваивает каждому следующему елементу сумму текущего и предыдущего елемента.

Как обратиться к первому и последнему элементу в строчке в двумерном массиве
День Добрый. Не могу понять как обратиться к первому и последнему элементу в строчке в двумерном массиве содержащем n-строк m-столбцов...

Переменной t присвоить значение true если в массиве x нет нулевых элементов
Ребят, помогите дописать код как написать условие для проверки есть нет 0 элементов я знаю, а вот чередование положителдьных и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru