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

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

Восстановить пароль Регистрация
 
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
19.09.2011, 19:05     Вопрос по одномерным массивам. #1
Всем доброго времени суток.
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;
}
Нужно чтобы число и сама последовательность формировались случайно. По С++ маловато, сталкиваюсь с ним редко. Если кто может помочь, буду признателен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 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
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
19.09.2011, 19:20  [ТС]     Вопрос по одномерным массивам. #3
Спасибо, это я уже разобрался, все заработало, там еще надо править удаление в самом конце.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 09:13  [ТС]     Вопрос по одномерным массивам. #5
Спасибо. но с первой задачей все уже давно решилось. Со второй вопрос все еще открыт. пробовал переделать, ничего не выходит.
Yandex
Объявления
20.09.2011, 09:13     Вопрос по одномерным массивам.
Ответ Создать тему
Опции темы

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