4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
1

массив

09.12.2010, 16:07. Показов 987. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите написть код суммы рандомного массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2010, 16:07
Ответы с готовыми решениями:

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между элементами исходного массив
Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести...

Массив: Как скопировать двумерный массив в другой массив?
Как скопировать двумерный массив в другой массив?

19
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
09.12.2010, 16:14 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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(static_cast<int>(time(NULL)));
    int *arr;
    int sum=0,size;
    cout<<"Enter sise of array: ";
    cin>>size;
    arr = new int[size];
    cout<<endl<<"Array: "<<endl;
    for(int i=0; i<size; i++)
    {
            arr[i]=rand()%5-2;
            cout<<arr[i]<<"  ";
            sum+=arr[i];
    }
     cout<<endl<<"Sum is "<<sum<<endl;  
   delete [] arr;
   system("pause");
   return 0;
}
1
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
09.12.2010, 16:20  [ТС] 3
MILAN,
прокомпилирвуй полная чужь выходит.
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
09.12.2010, 16:23 4
Интересно

http://codepad.org/Wd2lLDM7
1
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
09.12.2010, 16:35  [ТС] 5
а двумерного массива?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
09.12.2010, 16:58 6
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 <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
        int **arr;
        int sum=0,M,N;
        cout<<"Enter M: ";
        cin>>M;
        cout<<"Enter N: ";
        cin>>N;
        arr = new int*[M];
        cout<<endl<<"Array: "<<endl;
        for(int i=0; i<M; i++)
        {
            arr[i]=new int[N];
            for(int j=0; j<N; j++)
            {
                    arr[i][j]=rand()%5-2;
                    cout<<arr[i][j]<<"  ";
                    sum+=arr[i][j];
            }
          cout<<endl;
        }
     cout<<endl<<"Sum is "<<sum<<endl;  
   for(int i=0; i<M; i++)
       delete arr[i];
         delete [] arr;
   system("pause");
   return 0;
}
0
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
10.12.2010, 12:59 7
А как будет выглядеть код, если нужно вычислить сумму элементов матрицы, если матрица задается в виде двумерного массива? также?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
10.12.2010, 15:56 8
Feytan, двумерный массив ето и есть матрица!!!!
1
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
10.12.2010, 16:27 9
А вот к примеру:
Для матрицы размером n x 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
28
29
30
31
32
33
34
35
#include "stdafx.h"
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
        int **arr;
        int sum=0,N,M;
        cout<<"Enter N: ";
        cin>>N;
                cout<<"Enter M: ";
                cin>>M;
                arr = new int*[N];
        cout<<endl<<"Array: "<<endl;
        for(int i=0; i<N; i++)
        {
                        arr[i]=new int[M];
                        for(int j=0; j<M; j++)
                        {
                    arr[i][j]=rand()%5-2;
                    cout<<arr[i][j]<<"  ";
                    sum+=arr[i][j];
                        }
          cout<<endl;
                }
     cout<<endl<<"Sum is "<<sum<<endl;  
   for(int i=0; i<N; i++)
           delete arr[i];
             delete [] arr;
   system("pause");
   return 0;
}
Но тогда непонятно что означают слова: "в виде двумерного массива случайным образом", само понятие двумерного массива понятно, но что значит случайным образом, может просто числа располагаются в массиве случайным образом или что-то подобное? и влияет ли это на код программы?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
10.12.2010, 16:29 10
Я так понимаю, что матрица должна заполнятся случайными числами, тоисть с помощью функции rand!!!
0
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
10.12.2010, 16:57 11
Значит как я понял код пограммы неизменяется.

И вот еще что, а что если к полученной программе, добавить условие:
Умножить на это чило(как я понимаю сумму элементов матрицы) элементы k-той строки. Значение k вводится.

То мы должны сперва использовать
C++
1
int temper [k];
или что-то другое
Но тогда нам следует ввести ее, используя
C++
1
2
cout<<"Enter k: ";
cin>>k;
Но в этом у меня полный завал, куда что ставить и в какой последовательности непонимаю?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
10.12.2010, 22:40 12
Feytan, если я вас правильно понял, то вот, проверяйте

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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
        int **arr;
        int sum=0,M,N,k;
        cout<<"Enter M: ";
        cin>>M;
                cout<<"Enter N: ";
                cin>>N;
                arr = new int*[M];
        cout<<endl<<"Array: "<<endl;
        for(int i=0; i<M; i++)
        {
              arr[i]=new int[N];
              for(int j=0; j<N; j++)
                {
                    arr[i][j]=rand()%5-2;
                    cout<<arr[i][j]<<"  ";
                    sum+=arr[i][j];
                }
          cout<<endl;
        }
     cout<<endl<<"Sum is "<<sum<<endl;  
     cout<<"Enter k: ";
     cin>>k;
     cout<<endl<<"New matrix: "<<endl;
     for(int i=0; i<M; i++)
     {
         for(int j=0; j<N; j++)
         {
             if(i==k-1)
             {
                 arr[i][j]*=sum;
             }
            cout<<arr[i][j]<<"  ";
         }
       cout<<endl;    
     }
     for(int i=0; i<M; i++)
           delete arr[i];
             delete [] arr;
   system("pause");
   return 0;
}
0
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
10.12.2010, 23:51 13
Вопрос по программному коду:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
        int **arr;
        int sum=0,M,N,k;
        cout<<"Enter M: ";
        cin>>M;
Разве мы ищем сумму всех членов, я имею ввиду, начиная с 0,M,N,k
Мы же ищем сумму марицы, разве не правильнее будет записать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
        int **arr, k = 0;
        int sum=0,M,N;
        cout<<"Enter M: ";
        cin>>M;
Насчет этого точно не знаю потому и спрашиваю?

И вот еще что, для чего нужно условие и о чем оно говорит
C++
1
2
3
4
 if(i==k-1)
{
arr[i][j]*=sum;
}
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
10.12.2010, 23:57 14
Цитата Сообщение от Feytan Посмотреть сообщение
Разве мы ищем сумму всех членов, я имею ввиду, начиная с 0,M,N,k
Мы же ищем сумму марицы, разве не правильнее будет записать:
Ведь сума матрицы, ето и есть сума всех ее членов.

Цитата Сообщение от Feytan Посмотреть сообщение
И вот еще что, для чего нужно условие и о чем оно говорит
if(i==k-1)
{
arr[i][j]*=sum;
}
к - номер строки, елеметнты которой нужно умножыть на сумму. В цикле i - счетчик строк. Если счетчик (i) равняется номеру введеной строки, умножает каждый елемент строки на сумму матрицы!!!!
0
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
11.12.2010, 00:42 15
А для чего вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        srand(static_cast<int>(time(NULL)));
        int **arr;
        int sum=0,M,N,k;
        cout<<"Enter M: ";
        cin>>M;
                cout<<"Enter N: ";
                cin>>N;
                arr = new int*[M];
        cout<<endl<<"Array: "<<endl;
        for(int i=0; i<M; i++)
        {
              arr[i]=new int[N];
              for(int j=0; j<N; j++)
                {
                    arr[i][j]=rand()%5-2;
Насколько я понял, для того чтобы каждый новый раз выдавались новые (случайные) значения для исходной матрицы, верно?
А тогда откуда он берет диапазон этих случайных цифр?
И что означает строчка:
C++
1
        int **arr;
Если я правильно понимаю, то это означает, что наша площадь является целым числом, а для чего нужны тогда эти две звездочки (**)?

C++
1
2
3
4
5
6
                    cout<<arr[i][j]<<"  ";
                    sum+=arr[i][j];
                }
          cout<<endl;
        }
     cout<<endl<<"Sum is "<<sum<<endl;
Поясните пожалуйста эту часть программы, насколько я понимаю это говорит о том что программа сначала создаст случайную матрицу и выведет ее на экран, после того как мы введем числа M и N, а затем программа будет суммировать все члены данной матрицы, после чего выдаст результат суммы элементов матрицы?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.12.2010, 00:52 16
Цитата Сообщение от Feytan Посмотреть сообщение
Насколько я понял, для того чтобы каждый новый раз выдавались новые (случайные) значения для исходной матрицы, верно?
Верно!!!!

Цитата Сообщение от Feytan Посмотреть сообщение
А тогда откуда он берет диапазон этих случайных цифр?
От -2 до 5 (rand()%5-2)

Цитата Сообщение от Feytan Посмотреть сообщение
int **arr;
Указатель на двумерный массив. Массив здесь создается динамически, для того чтобы можно задать матрице любой размер!!!



Цитата Сообщение от Feytan Посмотреть сообщение
насколько я понимаю это говорит о том что программа сначала создаст случайную матрицу и выведет ее на экран, после того как мы введем числа M и N, а затем программа будет суммировать все члены данной матрицы, после чего выдаст результат суммы элементов матрицы?
Правильно понимаете.
0
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
11.12.2010, 01:08 17
А что это за endl и для чего они нужны
C++
1
cout<<endl<<"Sum is "<<sum<<endl;
Я понимаю, что cout означает вывести на экран то, что находится между " ", но для чего нужны эти endl никак непойму?

C++
1
2
3
4
5
6
7
#include <ctime>
 
using namespace std;
 
int main()
{
        srand(static_cast<int>(time(NULL)));
Для чего нужен этот ctime и для чего нужно srand(static_cast<int>(time(NULL))) - если я правильно понял srand показывает то, что здесь будет использоваться rand, то есть случайные значения, а время для чего тогда?
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.12.2010, 01:19 18
Цитата Сообщение от Feytan Посмотреть сообщение
А что это за endl и для чего они нужны
Для перехода на новую строку.

Цитата Сообщение от Feytan Посмотреть сообщение
Для чего нужен этот ctime и для чего нужно srand(static_cast<int>(time(NULL))) - если я правильно понял srand показывает то, что здесь будет использоваться rand, то есть случайные значения, а время для чего тогда?
Фукция rand генерирует одни и те же случайные числа при многих запусках программы. Для того, чтобы сделать действительно случайные разные числа, используется функция srand. Функция srand получает системное время, и исходя из него генерирует случайные числа. Для получения системного времени используется библиотека ctime!!!
1
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 97
11.12.2010, 01:56 19
C++
1
for(int i=0; i<M; i++)
Для чего нужен этот for? Насколько я понимаю, то что в скобочках, говорит о том, что челое число i начинается с 0 и заканчивается M, а для чего этот i++ и вообще для чего он нужен и что означает? Хотя я могу лишь предположить, что это служит для последующего увеличения строки, хотя хотелось бы узнать об этом по лучше?
C++
1
2
3
4
           delete arr[i];
             delete [] arr;
   system("pause");
   return 0;
Для чего нужны эти 4 строчки и о чем они?
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
11.12.2010, 02:01 20
Feytan, Читайте книжки. Это цикл. i - переменная цикла (счетчик так называемый). i++ - прибавление единицы к i каждую итерацию цикла до тех пор пока i не будет равен M-1
delete - очистка памяти после выделения
pause - дабы консоль не закрывалась
return 0 - возврат значения успешного выполнения программы в место вызова (ОС)
1
11.12.2010, 02:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2010, 02:01
Помогаю со студенческими работами здесь

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел...

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста...

Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Динамические массивы привлекают больше. :)

Есть массив одинаковых элементов, сделать функцию делающую массив различных
Дан одномерный массив, среди элементов которого есть совпадающие. Разработать функцию, создающую...

Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q.
Дан массив K(N).Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в...

Массив: Переместить в массив Y все числа, дробная часть которых больше 5.
Помогите решить, вообще не понимаю как в С++ с дробной частью работать. Задан массив X(N)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru