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

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

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

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

14.04.2011, 18:53. Просмотров 314. Ответов 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");
}
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 (см....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2846 / 1783 / 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;
}
Lostmen
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 13
14.04.2011, 19:34  [ТС] #3
спасибо, но нельзя ли как-то по проще а то меня преподаватель убьёт за использование библиотек vector, iterator, algorithm и т.д. и операторов из них
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.04.2011, 20:01 #4
1. Создаёшь новый массив на один элемент больше текущего.
2. Копируешь все элементы, которые меньше введённого.
3. Копируешь введённый элемент.
4. Копируешь все остальные элементы.
5. Удаляешь исходный массив.
Только так.
igorrr37
1646 / 1274 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 20:45
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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