Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ketler
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 15
#1

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

28.09.2011, 21:09. Просмотров 356. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2011, 21:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать сумму элементов строки в массиве и присвоить значение первому элементу (C++):

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

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

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

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

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

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

4
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.09.2011, 21:22 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
Петррр
5965 / 3402 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
28.09.2011, 21:31 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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  [ТС] #4
Извиняюсь, неправильно сформулировал задание.
Функция подсчитывает сумму элементов в каждой строке массива и присваивает это значение первому элементу этой-же строки массива.
Или x[i][0]=x[i][0] +....+ x[i][N]
Надеюсь так понятнее.
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
29.09.2011, 01:02 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
29.09.2011, 01:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2011, 01:02
Привет! Вот еще темы с ответами:

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

Найти количество элементов последовательности, кратных ее первому элементу - C++
Помогите написать программу Дана последовательность целых чисел, за которой следует 0.Найти количество элементов этой...

Найти количество элементов последовательности кратных ее первому элементу - C++
Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных ее первому элементу. так не...

Найти количество элементов массива, равных первому элементу - C++
ПОМОГИТЕ ПОЖАЛУЙСТА!!!! 1)Составить программу,которая находит количество элементов,равных первому элементу,и количество элементов,равных...


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

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

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