1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 28 ноя 2010.

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

    Репутация:
    0
    Сформировать одномерный массив. Удалить из него элемент с заданным номером, добавить элемент с заданным номером.
     
  2. BashOrgRu

    BashOrgRu Well-Known Member

    Репутация:
    0
    Регистрация:
    15 мар 2009
    Сообщения:
    77
    Симпатии:
    0
    Код:
    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 Гость

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

    BashOrgRu Well-Known Member

    Репутация:
    0
    Регистрация:
    15 мар 2009
    Сообщения:
    77
    Симпатии:
    0
    Код:
     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 Гость

    Репутация:
    0
    спасибооо)))))))))) поняла все свои ошибки)))) ;)
     
  6. DarkKnight

    DarkKnight Well-Known Member

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

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

    lazybiz Well-Known Member

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

    BashOrgRu Well-Known Member

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

    Код:
    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;
    }
     
Загрузка...
Статус темы:
Закрыта.

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