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

Определить количество положительных элементов массива до последнего нулевого - C++

Восстановить пароль Регистрация
 
m@l@a
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 11:43     Определить количество положительных элементов массива до последнего нулевого #1
11. Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента и количество отрицательных после него в массивах Y(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
36
37
38
39
40
41
42
43
44
45
46
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
double koll(double);
void main()
{
    const int N=10,M=15;
    int X[M],Y[N],i,ko,kp;
    srand(time(0));
    cout<<"\n massiv X: ";
    for(i=0;i<M;i++)
    {
        X[i]=rand()%10-5;
        cout<<X[i]<<" ";
    }
    cout<<"\n mzassiv Y: ";
    for(i=0;i<N;i++);
    {
        Y[i]=rand()%10-15;
        cout<<Y[i]<<" ";
    }
koll(Y,N,kp,ko);
koll(X,M,kp,ko);
}
double koll(double a)
{
    int j=0
        int i=0;
    while (i>=1)and(j=0)do
    if a[i]=0 j=i;
    else i=i-1;
    if j=0 cout<<"\n v massive net nylevogo elementa";
    {
        cout<<"\n vvedite indecs nylevogo elementa ";
        cin>>j;
        int kolpol=0;
        for(i=1;i<j-1;i++)
            if(a[i]>0)inc(kolpol);
            int kolot=0;
            for(i=1;i<j+1;i++)
                if(a[i]<0)inc(kolot);
                }
    cout<<"\n koll pol el= "<<kolpol;
    cout<<"\n koll ot el= "<<kolot;
}
ребята,посмотрите пожалуйста,почему не работает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2010, 11:43     Определить количество положительных элементов массива до последнего нулевого
Посмотрите здесь:

Найти сумму элементов массива от первого до последнего нулевого C++
C++ Сумма элементов массива, от первого до последнего нулевого, с использованием функции
C++ Определить индекс первого и последнего нулевого элемента массива
C++ Вычислить максимальный элемент массива до первого нулевого и сумму элементов до последнего положительного.
C++ Определить количество элементов массива, кратных трем и индекс последнего такого элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yanyk1n
 Аватар для yanyk1n
4324 / 1455 / 152
Регистрация: 12.03.2009
Сообщений: 5,310
10.05.2010, 11:44     Определить количество положительных элементов массива до последнего нулевого #2
C++
1
2
while (i>=1)and(j=0)do
if a[i]=0 j=i;
Не путайте Паскаль и С++
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
10.05.2010, 11:55     Определить количество положительных элементов массива до последнего нулевого #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
#include <iostream>
#include <ctime>
#include <iomanip>
void func (const int *, int);
 
int main()
{
    const int size=10;
    int X[size];
    int Y[size];
 
    srand(time(NULL));
    std::cout << "Start matrix X:\n";
    for (int i=0; i<size; i++) {
        X[i]=rand()%10-5;
        std::cout << std::setw(3) << X[i]; }
    std::cout << std::endl << "Start matrix Y:\n";
    for (int i=0; i<size; i++) {
        Y[i]=rand()%10-5;
        std::cout << std::setw(3) << Y[i]; }
 
    std::cout << std::endl;
    std::cout << "Matrix X:\n"; func (X, size);
    std::cout << "Matrix Y:\n"; func (Y, size);
 
    return 0;
}
 
void func (const int *MAS, int size)
{
    int last_neg; // тут будет индекс последнего отрицательного элемента.
    for (int i=size-1; i>=0; i++)
        if (MAS[i]==0) { last_neg=i; break; }
 
    int num_pos=0; // кол-во положительных.
    int num_neg=0; // кол-во отрицательных.
 
    for (int i=0; i<last_neg; i++) // считаем кол-во положительных.
    if (MAS[i]>0) num_pos++;
 
    for (int i=last_neg+1; i<size; i++) // считаем кол-во отрицательных.
    if (MAS[i]<0) num_neg++;
 
    std::cout << "Number of positive elements: " << num_pos;
    std::cout << std::endl;
    std::cout << "Number of negative elements: " << num_neg;
    std::cout << std::endl;
}
m@l@a
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 12:02  [ТС]     Определить количество положительных элементов массива до последнего нулевого #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
#include <iostream.h>;
#include <stdlib.h>
#include <time.h>
void main()
{
    const int N=10;
    int i,j,A[N][N];
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            A[i][j]=rand()%10-5;
        cin>>A[i][j];
        for(i=1;i<N;i++)
            for(j=1;j<N;j++)
                A[i][j]=0;
            for(i=1;i<N;i++)
            {
                A[1][i]=1;
                A[2][2]=1;
                A[i][3]=1;
                A[i][8]=1;
                A[2][9]=1;
                A[9][2]=1;
                A[9][9]=1;
                A[10][i]=1;
            }
            for(i=1;i<N;i++)
            {
                for(j=1;j<N;j++)
                    cout<<"\n A[i][j]";
}
тоже не работает(
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
10.05.2010, 12:05     Определить количество положительных элементов массива до последнего нулевого #5
Мои извинения, в прошлом коде допустил ошибку.
Исправил.
#include <iostream>
#include <ctime>
#include <iomanip>
void func (const int *, int);

int main()
{
const int size=10;
int X[size];
int Y[size];

srand(time(NULL));
std::cout << "Start matrix X:\n";
for (int i=0; i<size; i++) {
X[i]=rand()%10-5;
std::cout << std::setw(3) << X[i]; }
std::cout << std::endl << "Start matrix Y:\n";
for (int i=0; i<size; i++) {
Y[i]=rand()%10-5;
std::cout << std::setw(3) << Y[i]; }

std::cout << std::endl;
std::cout << "Matrix X:\n"; func (X, size);
std::cout << "Matrix Y:\n"; func (Y, size);

return 0;
}

void func (const int *MAS, int size)
{
int last_neg=-1; // тут будет индекс последнего отрицательного элемента.
for (int i=size-1; i>=0; i--)
if (MAS[i]==0) { last_neg=i; break; }
if (last_neg==-1) std::cout << "Zero element not found.\n";
else {
int num_pos=0; // кол-во положительных.
int num_neg=0; // кол-во отрицательных.

for (int i=0; i<last_neg; i++) // считаем кол-во положительных.
if (MAS[i]>0) num_pos++;

for (int i=last_neg+1; i<size; i++)
if (MAS[i]<0) num_neg++;

std::cout << "Number of positive elements: " << num_pos;
std::cout << std::endl;
std::cout << "Number of negative elements: " << num_neg;
std::cout << std::endl; }
}


Добавлено через 29 секунд
m@l@a, пользуйтесь тегами выделения кода и комментариями к нему.
m@l@a
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 12:33  [ТС]     Определить количество положительных элементов массива до последнего нулевого #6
ну можите сказать что во второй задачи нетак
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
10.05.2010, 12:37     Определить количество положительных элементов массива до последнего нулевого #7
Вы имеется в виду пост #4?
Если да, то я даже смысла не могу понять, что вы в нем делаете.
m@l@a
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 18:21  [ТС]     Определить количество положительных элементов массива до последнего нулевого #8
нужно создать квадратную матрицу
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
10.05.2010, 18:27     Определить количество положительных элементов массива до последнего нулевого #9
Создать квадратную матрицу?
Ну дак вот, весь незаурядный алгоритм действий)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <ctime>
#include <iomanip>
 
int main()
{
    const int size=10;
    int MAS[size][size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++)  // заполняем случайными числами и выводим на экран.
    {
        for (int j=0; j<size; j++) {
            MAS[i][j]=rand()%20+1;
            std::cout << std::setw(3) << MAS[i][j]; }
    std::cout << std::endl; }
    return 0;
}
m@l@a
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
12.05.2010, 16:53  [ТС]     Определить количество положительных элементов массива до последнего нулевого #10
1. Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

решите пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2010, 17:31     Определить количество положительных элементов массива до последнего нулевого
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
12.05.2010, 17:31     Определить количество положительных элементов массива до последнего нулевого #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну вот, правда алгоритм не очень красивый:
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 <iomanip>
 
int main ()
{
    const int size=5;
    int MAS[size][size] = {
                {1,2,3,4,5},
                {11,12,13,14,15},
                {6,7,8,9,10},
                {21,22,23,24,25},
                {16,17,18,19,20}
    };
 
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++) { // вывод матрицы на экран.
        for (int j=0; j<size; j++)
            std::cout << std::setw(4) << MAS[i][j];
    std::cout << std::endl; }
 
    int indexRow_max, indexColumn_max; // индексы максимального элемента.
    int indexRow_gen, indexColumn_gen; // индексы элемента, стоящий на пересечении диагоналей.
    int tmp, max=0;
    for (int i=0; i<size; i++)
        for (int j=0; j<size; j++) {
            if (((i==j) || (i+j==size-1)) && (max<MAS[i][j])) // ищем максимальный элемент на диагоналях,
            {
                max=MAS[i][j];
                indexRow_max=i;
                indexColumn_max=j;
            }
            if ((i==j) && (i+j==size-1)) // и элемент, стоящий на их пересечении.
            {
                indexRow_gen=i;
                indexColumn_gen=j;
            }
        }
 
    tmp=MAS[indexRow_max][indexColumn_max];
    MAS[indexRow_max][indexColumn_max]=MAS[indexRow_gen][indexColumn_gen];
    MAS[indexRow_gen][indexColumn_gen]=tmp;
 
    std::cout << std::endl;
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++)
    {
        for (int j=0; j<size; j++)
            std::cout << std::setw(3) << MAS[i][j];
    std::cout << std::endl;
    }
 
    std::cout << std::endl;
 
    return 0;
}
Yandex
Объявления
12.05.2010, 17:31     Определить количество положительных элементов массива до последнего нулевого
Ответ Создать тему
Опции темы

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