Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 29.06.2011
Сообщений: 130
1

Вопрос по одномерным массивам.

19.09.2011, 19:05. Показов 683. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
1. Написал код но при запуске выкидывает ошибку и условия не считает.
В одномерном массиве формируемом случайно элементами как отриц. так и положит. нужно подсчитать кол-во этих элементов в отдельности. (отриц. = (), полож. = (), нулевых=())
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
#include "stdafx.h" 
#include <iostream>
 
using namespace std;
 
int main()
{
    const int count = 10;
    int arr[count];
 
    int n,k1,k2,k3;
     
    for (int i = 0; i < count; i++)
  {
       arr[i] = rand()%20;
    cout<<arr[i]<<" ";
  }
    k1=k2=k3=0;
    for(int i=0;i<n;i++) 
    { 
        cin>>arr[i]; 
        if(arr[i]>0)  k1++;
        if(arr[i]<0)  k2++;
        if(arr[i]==0) k3++;
    }
    cout<<"  a[i]>0: "<<k1<<endl;
    cout<<"  a[i]<0: "<<k2<<endl;
    cout<<"  a[i]=0: "<<k3<<endl;
    delete []arr;
    system("pause");
    return 1;
}

2. Дана неубывающая последовательность действительных чисел a1, a2, …an. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <vector>
 
void Print(int number) { std::cout << number << " ";  }
 
int main()
{
   int arr[] = { 10, -7, 12, 0, 8, 20, -11, 12 };
   std::vector <int> vec(arr, arr + 8);
   int number = 4;
   
   std::sort(vec.begin(), vec.end());
   
   std::vector <int>::iterator position = std::lower_bound(vec.begin(), vec.end(), number);
   vec.insert(position, number);
   
   std::for_each(vec.begin(), vec.end(), Print);
 
   return 0;
}
Нужно чтобы число и сама последовательность формировались случайно. По С++ маловато, сталкиваюсь с ним редко. Если кто может помочь, буду признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2011, 19:05
Ответы с готовыми решениями:

Задача по одномерным массивам
Сформировать одномерный массив целых чисел а, используя датчик случайных чисел. Удалить 5 последних...

задача по одномерным массивам
1) Условие задачи: В массиве A определить среднюю длину непрерывных участков отрицательных...

Задача по одномерным массивам
Помогите плиз решить задачу по одномерным массивам в C++ &quot;Дан массив целых чисел из n элементов....

Задания по одномерным массивам.
Прошу помочь.. 1. Дана последовательность целых чисел a1,a2, ..., an. Выяснить, какое число...

4
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
19.09.2011, 19:14 2
Цитата Сообщение от Ierehon Посмотреть сообщение
for(int i=0;i<n;i++)
переменная n неициализирована и в arr у вас помежт поместится только count элементов,а не n
1
0 / 0 / 2
Регистрация: 29.06.2011
Сообщений: 130
19.09.2011, 19:20  [ТС] 3
Спасибо, это я уже разобрался, все заработало, там еще надо править удаление в самом конце.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
19.09.2011, 19:37 4
1, если ноль считать за позитивное число и без проверок в функциях
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define SIZE 10
#define HI 10
#define LO (-10)
 
void random_fill(int * arr, size_t size, int lo, int hi){
    while ( size-- )
        *arr++ = rand() % ( hi - lo + 1 ) + lo;
}
 
void count_neg_pos(const int * arr, size_t size, size_t * neg, size_t * pos){
    size_t cnt[2] = { 0 };
    while ( size-- )
        ++cnt[(*arr++ < 0)];
    *pos = cnt[0];
    *neg = cnt[1];
}
 
void dump(const int * arr, size_t size){
    while ( size-- )
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n');
}
 
int main(void){
    int arr[SIZE];
    size_t pos, neg;
    
    srand(time(NULL));
    
    random_fill(arr, SIZE, LO, HI);
    printf("Array: ");
    dump(arr, SIZE);
    count_neg_pos(arr, SIZE, &neg, &pos);
    printf("Negative: %d\nPositive: %d\n", neg, pos);
    
    return 0;
}
1
0 / 0 / 2
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 09:13  [ТС] 5
Спасибо. но с первой задачей все уже давно решилось. Со второй вопрос все еще открыт. пробовал переделать, ничего не выходит.
0
20.09.2011, 09:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2011, 09:13
Помогаю со студенческими работами здесь

Два задания по одномерным массивам.
1. Дан вещественный массив А. Определить количество и индексы тех элементов массива, которые...

Этап в задаче по одномерным массивам
void zeroElementsDelete(int *array, size_t *arraySize) { size_t zeroCounter(0); ...

лаба по одномерным и многомерным массивам
Нужно сделать вот такую лабораторную, буду рад любой написанной функции, заранее спасибо. 1) N =...

решите программы по одномерным массивам на языке С++
1.Массив заполнить с помощью генератора случайных чисел в интервале в количестве 15 элементов....

Написать функцию, которая по двум заданным одномерным массивам вычисляет двумерный массив и возвращает его максимальный элемент
Написать функцию, которая по двум заданным одномерным массивам (A размера m и B размера n)...

По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце – элементы второго массива.
подскажите как на языке C++ По двум заданным одномерным массивам формируется третий, содержащий в...


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

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