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

подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) - C++

Восстановить пароль Регистрация
 
Ann Taranova
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 6
16.12.2012, 07:23     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #1
Нужно создать функцию для суммирования двух столбцов и просуммировать два раза по два столбца. Сам массив задала, а функция работает не правильно, не знаю как задавать столбцы и как и суммировать. Помогите!
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
#include <conio.h>
#include <iostream.h>
#include<time.h>
void print(int)
{
 int U[10][10];
 int sum[10];
 int i,j,n,m,f,j1,j2;
 
  cout<<"stolbic1: "; cin>>j1;
  cout<<"stolbic2: "; cin>>j2;
  cout<<"resultat: "<<endl;
  for(i=0;i<n;i++)
      {sum[i]=0;
           sum[i]+=U[i][j1];
           sum[i]+=U[i][j2];} 
   cout<<" "<<sum[i]<<endl;
 
}
int main ()
{       int sum;
        int n, m, i, j;
        int U[10][10];
        cout<<"Enter n: ";
        cin>>n;
        cout<<"\nEnter m: ";
        cin>>m;
 
                for (i=0; i<n; ++i)
                {
                 for (j=0; j<m; ++j)
                 {
                    U[i][j]=rand()%20-10;
                    cout<<U[i][j]<<"\t";
                 }
                 cout<<endl;
        }
   print(sum);
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 07:23     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция)
Посмотрите здесь:

Даден массив. Все четные елементы массива уменьшыть в два раза, а нечетные увеличить в два раза. C++
Файлы. Программа, которая определяет если такой момент, что два раза вошли по одному пропуску или два раза вышли по одному (выводит все время истину) C++
Подскажите,пожалуйста ,что не так с кодом! C++
Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы C++
Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
16.12.2012, 07:28     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #2
Ну хотя бы то, что у Вас в каждой из функций есть свой неповторимый массив U.
Ann Taranova
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 6
16.12.2012, 07:32  [ТС]     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #3
В первой функции значит тоже сначала нужно задать массив или как?
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 07:41     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #4
Нужно передавать массив и его размеры в функцию как параметры. У вас внутри ф-ции объявлены новые переменные U, m и n, они не имеют отношения к тем, что в ф-ции main.
Ann Taranova
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 6
16.12.2012, 07:53  [ТС]     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #5
а если я создам одну просто функцию и все, то есть сумму перенесу в функцию main, но как тогда сумму сделать?
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 07:58     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #6
Цитата Сообщение от Ann Taranova Посмотреть сообщение
сумму перенесу в функцию main, но как тогда сумму сделать
Точно так же. Только у вас при подсчете сумм ошибка с фигурными скобками.

Вот с передачей в функцию, там приходится вторую размерность указывать. Лучше, кончено, указатели передавать.

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
void print(int U[][10], int n, int m)
{
    int sum[10];
    int i,j,j1,j2;
     
    cout<<"stolbic1: "; cin>>j1;
    cout<<"stolbic2: "; cin>>j2;
    cout<<"resultat: "<<endl;
    
    for(i=0;i<n;i++)
    {
        sum[i]=0;
        sum[i]+=U[i][j1];
        sum[i]+=U[i][j2];
        cout<<" "<<sum[i]<<endl;
    }
 
}
int main ()
{      
    int sum;
    int n, m, i, j;
    int U[10][10];
    cout<<"Enter n: ";
    cin>>n;
    cout<<"\nEnter m: ";
    cin>>m;
 
    for (i=0; i<n; ++i)
    {
        for (j=0; j<m; ++j)
        {
            U[i][j]=rand()%20-10;
            cout<<U[i][j]<<"\t";
        }
        cout<<endl;
    }
    
    print(U, n, m);
    
    system("pause");
    return 0;
}
Ann Taranova
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 6
16.12.2012, 08:38  [ТС]     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #7
спасибо)) единственное когда я вводила 3 и 4 столбики, программа складывала 4 и 5, но с этим я справилась)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 08:42     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция)
Еще ссылки по теме:

C++ Что будет, если два раза динамически выделить память по одному указателю?
Функция, которая увеличивает каждый элемент одномерного массива в два раза C++
C++ Подскажите что не так с кодом?

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

Или воспользуйтесь поиском по форуму:
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 08:42     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) #8
Цитата Сообщение от Ann Taranova Посмотреть сообщение
когда я вводила 3 и 4 столбики, программа складывала 4 и 5
Элементы массива нумеруются от нуля, вот поэтому так...
Yandex
Объявления
16.12.2012, 08:42     подскажите что с кодом не так? (просуммировать два раза по два столбца, функция)
Ответ Создать тему
Опции темы

Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru