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

Массив: Вставить элемент с номером к. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помагите решыть пожалуйста . решыть задачу в С++ оператором множинного вибору http://www.cyberforum.ru/cpp-beginners/thread806510.html
1.З екрану вводяться середні бали студентів за семестр. Підрахувати кількість відмінників, студентів які вчаться на добре, та задовільно, результат вивести на друк.
C++ Организовать расчет полинома с использованием алгоритма Горнера Не могу даже похожую задачу на форуме найти, помогите кто чем может http://www.cyberforum.ru/cpp-beginners/thread806508.html
C++ Строка: Подсчитать и вывести на печать количество вводов каждой буквы.
Вот задание: 1.З екрану вводяться літери А, В, С, *, Р. Підрахувати та вивести на друк кількість введенькожної літери. С экрана вводятся буквы А, В, С, * Р. Подсчитать и вывести на печать количество вводов каждой буквы. Официальный язык форума - русский Вот мой пример програмы: #include <stdio.h> #include <conio.h> #include <iostream.h> main()
Проблемы с быстрой сортировкой C++
Пишу программу, сортирующую четные строки матрицы быстрой сортировкой. Переставляются все элементы правильно. Но мне нужно, чтобы программа подсчитала еще количество сравнений и перестановок. Вот тут уже возникла проблема. Никак не могу понять, куда нужно счетчики поставить. Подскажите, пожалуйста, что у меня не правильно. #include "StdAfx.h" #include <iostream> #include <iomanip> #include...
C++ Упорядочить строки матрицы по убыванию http://www.cyberforum.ru/cpp-beginners/thread806484.html
Дана матрица А(n,m). Упорядочить строки матрицы по убыванию суммы находящихся в них элементов.
C++ Если ввода нет, то продолжать цикл Возвращаясь к теме таймера, как сделать такое: есть цикл, который постоянно работает и выводит на экран значение таймера. В любой момент времени пользователь может нажать клавишу и выйти из цикла. Но если программа будет ждать ввода пользователя, то цикл будет стоять на месте и следовательно ничего не будет выводится на экран, а если оставить как есть, то программа так и не получит ввода от... подробнее

Показать сообщение отдельно
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99

Массив: Вставить элемент с номером к. - C++

12.03.2013, 15:31. Просмотров 811. Ответов 11
Метки (Все метки)

Задание состояло в том,чтобы написать программу выполняющую 5 действий:
1.Удаление элемента с заданым номером.
2.Вставить элемент с номером к.
3.Поставить парные элементы в начало массива, а непарные в конец.
4.Вывести элемент равный среднему арифметическому суме всех чисел массива.
5.Выполнить сортировку простой вставкой.
Так вот я реализовал эту программу по функциям, функции каждую написал, но во второй функции трабла.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int arr[100];//масив макс.100 элементов
 
void destroyElem(int n,int m);
void vstavka(int m,int k);
void Random(int* p,int n);
void vuvod(int* p,int n);
void SortElement(int n);
void swap(int* p1,int* p2);
void sort(int n);
int Search(int* j,int n);
 
 
void main()//основная функция
{
    SetConsoleCP(1251);
    SetConsoleOutputCP (1251);
    srand((unsigned)time(NULL));
    cout<<"Введите количество элементов в одномерном масиве"<<endl;
    int n;
    cin>>n;
    if (n!=0)
    {
        Random(arr, n);
        vuvod(arr, n);}
    else
    {
        cout<<"Вы решили покинуть программу";
        return;
    }
    cout<<"Введите номер элемента который хотите удалить";
    int m;
    cin>>m;
    if (m!=0){
        destroyElem(n,m);
        vuvod(arr,--n);}
    cout<<"Задайте место для нового элемента"<<endl;
    cin>>m;
    if (m!=0){
     vstavka(arr,n,m,k);
     vuvod(arr,n+=m);
    }
      sort(n);
      vuvod(arr,n);
      int j=0;
      if ( Search(&j,n)!=0)
          cout << arr[j];
      cout<<"Отсортированый масив\n";
      SortElement(n);
      vuvod(arr,n);
}
 
 void Random (int* p, int n) {
    while (n-->0) {
        *p= -50 +  rand () % 100;
        p++;
    }
}
 
void vuvod  (int* p, int n) {
    while (n-->0) {
        cout << *p<< " ";
        p++;
        }
    cout << endl;
}
 
  void SortElement(int n){//функция сортировки  простой вставкой
      int i,j,low;
      for(i=0;i<n-1;i++){//Поиск найменшего элемента от 0 до n-1
    low=i;
    for (j=i+1;j<n;j++)
        if (arr[j]<arr[low])
            low=j;
    if (i!=low)
        swap (&arr[i],&arr[low]);
      }
  }
 
  void swap (int* p1, int* p2) {//функция обмена значений
    int temp = *p1;
    *p1 = *p2;
    *p2 = temp;
  }
 
 
 
     void destroyElem(int n,int m) {//функция для уничтожения элемента с заданым номером
         int i;
         for (i=m-1;i<n-1;i++){
             arr[i]=arr[i+1];
         }
         arr[i]=NULL;
     }
 
     void vstavka(int n,int m){//вставка элемента с к номером
        for (int i=0;i<m;i--){
        swap(&arr[i],&arr[m-1]);
        int k;
        cout<<"vvedite";
        cin>>k;
        arr[m-1]=k;
         }
     }
 
     int Search(int* j,int n){//элемента равному среднему арифметическому суме всех значений
         int suma=0;
      for (int i=0;i<n;i++){
        suma+=arr[i]; 
        }
      suma/=n;
     int flag=0;
     for ( int i=0;i<n;i++){
         if (arr[i]==suma)
         {
             flag++;
             *j=i;
             break;
         }
        }
     if (flag==0)
          return 0;
     else
         return 1;
     }
 
void sort (int n) {    //перестановка парных в начало,непарных
    for (int i=1,j=0;i<n;i++) {
        if(arr[i]%2 == 0) {
            swap (&arr[i],&arr[j]);
            j++;
        }
    }
}
Подскажите пожалуйста в чем ошибка,а то никак не пойму.Заранее благодарен.1 и последняя функции работают без погрешностей.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru