С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
#1

Одномерный массив - C++

24.11.2010, 14:55. Просмотров 505. Ответов 7
Метки нет (Все метки)

В одномерном массиве, состоящем из п целых элементов, вычислить:
1) номер максимального элемента массива;
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
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
 
int main()
{           //1.номер максимального элемента массива;
    int j, c, i;
    printf("Programma nahodit nomer max elementa massiva i proizvedenie elementov massiva,\nraspolozhennuh mezhdy pervum i vtorum nylevumi elementemi");
    printf("\n\nKolli4estvo elementov v massive:  ");
    scanf("%d", &c);
    int *p;
    p = new int [c];
    for(j=0; j<c; j++)
    {p[j]=j;}
    int max;
    max=0;
    for(i=1; i<c; i++)
    if(p[i]>p[max])
        max=i;
    printf("Nomer max elementa raven %d\n", max);
            //2.произведение элементов массива, расположенных между первым и вторым нулевыми элементами;
    int s=0, k1, k2;
    for(i=0;;i++)    if(p[i]==0) {k1=i; break;}
    for(i=c;;i--)    if(p[i]==0) {k2=i; break;}
    for(i=k1+1;i<k2;i++) s+=p[i];
    printf("Proizvedenie ravno %d\n", s);
        return 1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерный массив (C++):

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include &lt;iostream&gt; using namespace std; ...

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

7
legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
24.11.2010, 15:34 #2
если чесно я не понял вообще что тут требуют

"вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами."

это как?? оО
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.11.2010, 15:37 #3
Цитата Сообщение от legend Посмотреть сообщение
если чесно я не понял вообще что тут требуют

"вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами."

это как?? оО
если в массиве есть 2 элемента, значения которых равны 0, то нужно посчитать произведение элементов между этими самыми нулевыми элементами
0
legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
24.11.2010, 15:59 #4
к стати в вашей матрице макс елемент всегда будет последний =))
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
#include <iostream>
#include <conio.h>
 
 
int main()
{
 
using std::cout;
using std::cin;
using std::endl;
 
        setlocale(LC_ALL, "Russian");
        
        int m[100];
        int i,n,max=0,max_ind;
        cout<<"введите количество елементов масива: "<<endl;
        cin>>n;
        cout<<"введите елемент "<<endl;
        for (i=0;i<n;++i)
            cin>>m[i];
 
        for (i=0;i<n;++i)
            {if (m[i]>max)
                {max=m[i];
        max_ind=i+1;}}
 
cout<<"позиция максимального елемента = "<<max_ind<<endl;
 
//вторая часть задачи
 
//поиск позиции перовго "нуля" 
int first=0,second=0;
 
for (i=0;i<n;++i)
    {if (m[i]==0)
        if (first==0)
            first=i;}
//поиск позиции второго "нуля"
for (i=first;i<n;++i)
    {if (m[i]==0)
        if (second==0)
            second=i;}
//вычесление произведения
int sum;
for (i=first;i<second;i++)
//не знаю почему.. но тут мои мозки зависли .. и я немагу придумать как пощитать  произведение этих елементов
 
 
    
 
 
 
_getch;
 
 
     
}
0
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
24.11.2010, 16:03 #5
Цитата Сообщение от Zheka91 Посмотреть сообщение
printf("Nomer max elementa raven %d\n", max);
max здесь не элемент массива, а индека максимального, а элемент вот так p[max]

Цитата Сообщение от Zheka91 Посмотреть сообщение
for(i=k1+1;i<k2;i++) s+=p[i];
C++
1
s *=p[i]
произведение же!
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.11.2010, 16:11 #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
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
70
71
72
73
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int proizv;
    int secondN;
    int firstN;
    int Len;
    int *p;
    int maxElement, count;
    cout << "Vvedite kol-vo elementov v massive: ";
    cin >> Len;
    p = new int [Len];
 
    for (int i = 0; i < Len; i++)
    {
        p[i] = i;
    }
      
    p[8] = 0;
    maxElement = p[0];
    count = 0;
 
    for (int i = 0; i < Len; i++)
    {
        if (p[i] > maxElement)
        {
            maxElement = p[i];
            count = i;
        }
    }
 
    cout << endl;
    cout << "Maxelement is: " << maxElement<< endl;
    cout << "Number of maxelement is: " << count << endl;
 
    count = 0;
    for (int i = 0; i < Len; i++)
    {
        if (p[i] == 0)
        {
            ++count;
            firstN = i;
            break;
        }
    }
 
    for (int k = Len - 1; k >= 0; k--)
    {
        if ((p[k] == 0) && (k > firstN))
        {
            ++count;
            secondN = k;
            break;
        }
    }
 
    proizv = 1;
    if (count == 2)
    {
        for (int i = firstN+1; i < secondN; i++)
        {
            proizv *= i;
        }
        cout << proizv << endl;
    }
 
    delete []p;
    _getch();
    return 0;
}
p[8] = 0 ввел для проверки

3ье задание с перестановкой не сделал
0
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
24.11.2010, 16:17 #7
Цитата Сообщение от Zheka91 Посмотреть сообщение
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.
тут наверное можно создать еще 2 массива. в 1 записываешь все нечетные позиции с элементами, во второй четные. потом по очереди перезаписываешь массив c[].
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 20:50 #8
Цитата Сообщение от Zheka91 Посмотреть сообщение
произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
никто не раскрыл. Попытка panicwassano не правильная, вот в чем: если в массиве (я сейчас не о массиве который описал в своем коде Zheka91 - там всегда один нулевой элемент, самый первый) более двух нулевых элементов, то код panicwassano найдет не первый и второй нулевой элемент, а самые крайние два.
По поводу третьего задания:
Цитата Сообщение от grrrrr Посмотреть сообщение
тут наверное можно создать еще 2 массива. в 1 записываешь все нечетные позиции с элементами, во второй четные. потом по очереди перезаписываешь массив c[].
можно, но можно обойтись и "малой кровью":
(Считаю, что элемент p[0] стоит на нечетной позиции - т.е. на первой позиции)
C++
1
2
3
4
5
6
7
8
9
int l=1, r;
if(c%2==0)
r=c-2;
else
r=c-1;
while(l<r)
{
int temp=p[l]; p[l]=p[r]; p[r]=temp;
l+=2; r-=2;}
1
24.11.2010, 20:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 20:50
Привет! Вот еще темы с ответами:

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

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически - C++
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов...

Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массив - C++
Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массива;


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

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

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