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

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

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

Массивы(Экзаменационная прога) - C++

14.04.2011, 18:53. Просмотров 319. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста прога на экзамене попалась теперь надо сделать.
Задание: Дан одномерный целочисленный массив отсортированный в порядке не убывания необходимо вставить элемент x(вводиться пользователем) так чтобы порядок не изменился, СОРТИРОВКИ ИСПОЛЬЗОВАТЬ НЕЛЬЗЯ.
необходимо использовать указатели
вот мой код помогите пожалуйста исправить

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
#include<iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian_Russia.1251");
    const int N=100;
    int a[N], n, i, x;
    int *ptr;
    cout<<"Введите число x:\n";
    cin>>x;
    cout<<"Введите число элементов массива:\n";
    cin>>n;
    for(i=0; i<n; i++)
    {
        cout<<"Введите элемент массива:\n";
        cin>>a[i];
    }
    while(i<n)
    {
        if(a[i]<x)
            i++;
        else
        {
            *ptr=a[i];
            a[i]=x;
            a[i+1]=*ptr;
        }
    }
    cout<<"Обработанный массив:\n";
    for(i=0; i<n; i++)
        cout<<a[i]<<" ";
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 18:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы(Экзаменационная прога) (C++):

Исправьте прогу, пожалуйста! Прога про массивы.... - C++
Задача:Написать программу. Размерности массивов вводить с клавиатуры. Элементы массивов по желанию пользователя вводить с клавиатуры или...

Структура «экзаменационная ведомость» - C++
Здравствуйте, возникла проблема, есть задача - описать переменную «экзаменационная ведомость» (предмет, номер группы, список студентов...

Создать структуру «Экзаменационная ведомость» - C++
Создать структуру «Экзаменационная ведомость». В структуре должны содержаться следующие поля: Курс, Группа, Ф.И.О. (формат &quot;Фамилия Имя...

надо что то добавить!!прога просто выводит список групп,учеников и первых 3 оценок.надо чтобы прога в конце показывала по убыванию средего балла - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; main() {int t,o1,o2,o3; char...

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

4
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
14.04.2011, 19:25 #2
Цитата Сообщение от Lostmen Посмотреть сообщение
Дан одномерный целочисленный массив отсортированный в порядке не убывания необходимо вставить элемент x(вводиться пользователем) так чтобы порядок не изменился, СОРТИРОВКИ ИСПОЛЬЗОВАТЬ НЕЛЬЗЯ.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
 
int main(){
  int a[] = {1, 4, 6, 12, 25, 67}, sz = sizeof(a) / sizeof(*a), x = 10;
  std::vector<int> vec(a, a + sz);
  vec.insert(std::lower_bound(vec.begin(), vec.end(), x), x);
  std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
  return 0;
}
1
Lostmen
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 13
14.04.2011, 19:34  [ТС] #3
спасибо, но нельзя ли как-то по проще а то меня преподаватель убьёт за использование библиотек vector, iterator, algorithm и т.д. и операторов из них
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 20:01 #4
1. Создаёшь новый массив на один элемент больше текущего.
2. Копируешь все элементы, которые меньше введённого.
3. Копируешь введённый элемент.
4. Копируешь все остальные элементы.
5. Удаляешь исходный массив.
Только так.
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
14.04.2011, 20:45 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
 
int main(){
    int arr[100]={-30,-20,-10,0,10,20,30,40,50}, arrCountElements=9, key=-99, *p=arr+arrCountElements;
    for(; ; --p){
        if(*(p-1)<=key||p==arr){
            *p=key;
            break;
        }
        else {
            *p=*(p-1);
        }
    }
    for(p=arr; p<arr+arrCountElements+1; ++p){
        printf("%d ", *p);
    }
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 20:45
Привет! Вот еще темы с ответами:

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...

Прога на СИ!1!! - C++
Распечатать введенную строку, удалив из нее символы, не являющиеся буквами и цифрами, и заменив каждую цифру на ‘*’. Очень нужна...

Прога на СИ!! - C++
Надо написать задачку на Си!!! Даны целые числа n, m и вещественное число Х. Используя директиву #define для нахождения наибольшего из...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
14.04.2011, 20:45
Ответ Создать тему
Опции темы

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