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

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

Восстановить пароль Регистрация
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
24.11.2010, 14:55     Одномерный массив #1
В одномерном массиве, состоящем из п целых элементов, вычислить:
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 14:55     Одномерный массив
Посмотрите здесь:

Одномерный массив! C++
C++ одномерный массив А
Одномерный массив C++
Одномерный массив C++
C++ Одномерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
24.11.2010, 15:34     Одномерный массив #2
если чесно я не понял вообще что тут требуют

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

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

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

это как?? оО
если в массиве есть 2 элемента, значения которых равны 0, то нужно посчитать произведение элементов между этими самыми нулевыми элементами
legend
 Аватар для 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;
 
 
     
}
grrrrr
 Аватар для 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]
произведение же!
panicwassano
590 / 558 / 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ье задание с перестановкой не сделал
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
24.11.2010, 16:17     Одномерный массив #7
Цитата Сообщение от Zheka91 Посмотреть сообщение
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.
тут наверное можно создать еще 2 массива. в 1 записываешь все нечетные позиции с элементами, во второй четные. потом по очереди перезаписываешь массив c[].
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 20:50     Одномерный массив
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;}
Yandex
Объявления
24.11.2010, 20:50     Одномерный массив
Ответ Создать тему
Опции темы

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