Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63

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

10.05.2010, 11:43. Показов 1418. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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;
}
ребята,посмотрите пожалуйста,почему не работает
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2010, 11:43
Ответы с готовыми решениями:

количество положительных элементов до последнего нулевого элемента и количество отрицательных после него
1.Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента и количество отрицательных...

Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента
РЕБЯТ,ППОМОГИТЕ ПОЖАЛУЙСТА 1)Составить программу для нахождения суммы минимального и максимального значений среди элементов каждой из...

Найти среднее арифметическое положительных чисел массива и количество отрицательных до последнего нулевого значения
В массиве М найти среднее арифметическое положительных чисел и количество отрицательных до последнего нулевого значения. Если...

10
 Аватар для yanyk1n
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
10.05.2010, 11:44
C++
1
2
while (i>=1)and(j=0)do
if a[i]=0 j=i;
Не путайте Паскаль и С++
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.05.2010, 11:55
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

У вас много ошибок, посмотрите этот вариант, будет непонятно, объясню.
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;
}
1
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 12:02  [ТС]
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]";
}
тоже не работает(
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.05.2010, 12:05
Мои извинения, в прошлом коде допустил ошибку.
Исправил.
#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, пользуйтесь тегами выделения кода и комментариями к нему.
0
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 12:33  [ТС]
ну можите сказать что во второй задачи нетак
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.05.2010, 12:37
Вы имеется в виду пост #4?
Если да, то я даже смысла не могу понять, что вы в нем делаете.
0
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
10.05.2010, 18:21  [ТС]
нужно создать квадратную матрицу
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.05.2010, 18:27
Создать квадратную матрицу?
Ну дак вот, весь незаурядный алгоритм действий)
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;
}
1
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 63
12.05.2010, 16:53  [ТС]
1. Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

решите пожалуйста
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
12.05.2010, 17:31
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну вот, правда алгоритм не очень красивый:
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2010, 17:31
Помогаю со студенческими работами здесь

Вывести на экран сумму, произведение и номера положительных элементов одномерного массива после последнего нулевого элемента
Помогите пожалуйста решить задачи, очень нужно 1. Вывести на экран сумму, произведение и номера положительных элементов одномерного...

Определить сумму ненулевых элементов до последнего нулевого элемента массива
1.Составить программу, которая определяет сумму ненулевых элементов до последнего нулевого элемента и произведение ненулевых элементов...

Определить сумму ненулевых элементов массива до последнего нулевого элемента
Составить программу, которая определяет сумму ненулевых элементов до последнего нулевого элемента и произведение ненулевых элементов после...

Определить сумму ненулевых элементов массива до последнего нулевого элемента
Составить программу, которая определяет сумму ненулевых элементов до последнего нулевого элемента и произведение ненулевых элементов после...

Вычислить количество положительных элементов массива и сумму элементов массива, расположенных после последнего элемента, равного нулю
В одномерном массиве, состоящем из n вещественных элементов, вычислить: количество положительных элементов массива; сумму элементов...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru