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

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

Войти
Регистрация
Восстановить пароль
 
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
#1

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

19.09.2011, 19:05. Просмотров 378. Ответов 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
#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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2011, 19:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос по одномерным массивам. (C++):

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

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

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

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

лаба по одномерным и многомерным массивам - C++
Нужно сделать вот такую лабораторную, буду рад любой написанной функции, заранее спасибо. 1) N = 45 2) Функция для получения элементов...

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

4
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.09.2011, 19:14 #2
Цитата Сообщение от Ierehon Посмотреть сообщение
for(int i=0;i<n;i++)
переменная n неициализирована и в arr у вас помежт поместится только count элементов,а не n
1
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
19.09.2011, 19:20  [ТС] #3
Спасибо, это я уже разобрался, все заработало, там еще надо править удаление в самом конце.
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
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
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 09:13  [ТС] #5
Спасибо. но с первой задачей все уже давно решилось. Со второй вопрос все еще открыт. пробовал переделать, ничего не выходит.
0
20.09.2011, 09:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 09:13
Привет! Вот еще темы с ответами:

Этап в задаче по одномерным массивам - C++
void zeroElementsDelete(int *array, size_t *arraySize) { size_t zeroCounter(0); for (size_t i=0; i &lt; *arraySize; i++) ...

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

Написать функцию, которая по двум заданным одномерным массивам вычисляет двумерный массив и возвращает его максимальный элемент - C++
Написать функцию, которая по двум заданным одномерным массивам (A размера m и B размера n) вычисляет двумерный массив c(ij)=a(i)*b(j) и...

Вопрос по массивам С++ - C++
Вот код: #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main () { int a; for(int i=0; i&lt;=10; i++) //...


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

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

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