Задача: Одномерные массивы, удаление и добавление заданого эл-та

Тема в разделе "C/C++/C#", создана пользователем -, 28 ноя 2010.

Статус темы:
Закрыта.
  1. Гость

    Сформировать одномерный массив. Удалить из него элемент с заданным номером, добавить элемент с заданным номером.
     
  2. BashOrgRu

    BashOrgRu Well-Known Member

    Регистрация:
    15 мар 2009
    Сообщения:
    78
    Симпатии:
    0
    Код (C++):
    int main(){
    const N=10;
    int mas[N];
    int NumDel,NumAdd,AddEl;
    int i;
    /*
    Тут допиши считавние массива. Номер удаляемого элемента.
    Номер добавляемого элемента и его значение.
    */

    /*Удаление элемента с номером NumDel*/
    for (i=NumDel;i<N;i++) mas[i]=mas[i+1];
    /*Добавление элемента в номер NumAdd. Предпологаем, что массив не заполнен полностью, иначе удаляется последний элемент*/
    for (i=N;i>NumAdd;i--) mas[i-1]=mas[i];
    mas[NumAdd]=AddEl;

    return 0;
    }
     
  3. CRESTEEN

    CRESTEEN Гость

    Написать программу котоаря вводит с клавиатуры одномерный массив из 6 целых чисел, после чего меняет местами минимальный и максимальный элементы массива.
     
  4. BashOrgRu

    BashOrgRu Well-Known Member

    Регистрация:
    15 мар 2009
    Сообщения:
    78
    Симпатии:
    0
    Код (C++):
     int main(){
    const N=6;
    int mas[N];
    int i,maxI=0,max,minI=0,min;

    for (i=0;i<N;i++) scanf("%d",mas[i]);// Читаем массив
    max=mas[0];
    min=mas[0];
    for (i=0;i<N;i++) { //в этом цикле находим максимальный и минимальный элементы и их индексы.
    if (mas[i]>max){
    max=mas[i];
    maxI=i;
    }
    if (mas[i]<min){
    min=mas[i];
    minI=i;
    }
    }
    i=mas[maxI]; // сам обмен элементами.
    mas[maxI]=mas[minI];
    mas[minI]=i;
    return 0;
    }
     
  5. CRESTEEN

    CRESTEEN Гость

    спасибооо)))))))))) поняла все свои ошибки)))) ;)
     
  6. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0

    Вот тут немного не согласен, на последней итерации мы выходим за рамки массива, тоесть читаем память, которая нам не пренадлежит...
    i<N-1 - ве же должна быть
     
  7. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    DarkKnight125, я думаю ты и вот тут так же не согласишься)):
    Код (C++):
    for (i=N;i>NumAdd;i--) mas[i-1]=mas[i];
    Добавлено: P.S.: и я тебя в этом полностью поддерживаю!
     
  8. BashOrgRu

    BashOrgRu Well-Known Member

    Регистрация:
    15 мар 2009
    Сообщения:
    78
    Симпатии:
    0
    Спасибо, не заметил нeдочеты)

    Код (C++):
    int main(){
    const N=10;
    int mas[N];
    int NumDel,NumAdd,AddEl;
    int i;
    /*
    Тут допиши считавние массива. Номер удаляемого элемента.
    Номер добавляемого элемента и его значение.
    */

    /*Удаление элемента с номером NumDel*/
    for (i=NumDel;i<(N-1);i++) mas[i]=mas[i+1];
    /*Добавление элемента в номер NumAdd. Предпологаем, что массив не заполнен полностью, иначе удаляется последний элемент*/
    for (i=N;i>NumAdd;i--) mas[i]=mas[i-1];
    mas[NumAdd]=AddEl;

    return 0;
    }
     
Загрузка...
Похожие Темы - Задача Одномерные массивы
  1. Lizzz
    Ответов:
    1
    Просмотров:
    1.242
  2. Янчик
    Ответов:
    0
    Просмотров:
    473
  3. TrishaRay
    Ответов:
    1
    Просмотров:
    778
  4. elzim
    Ответов:
    0
    Просмотров:
    929
  5. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.116
Статус темы:
Закрыта.

Поделиться этой страницей