Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задачи перестановок в массивах ⇐ ПредыдущаяСтр 5 из 5
Решение таких задач сводится к выбору алгоритма просмотра массива с целью выполнить требуемые перестановки. Пример 10. Дан одномерный целочисленный массив, заданный случайными числами на промежутке [-10; 10). Выполните циклический сдвиг элементов с нулевой позиции вправо на одну позицию. То есть должна быть реализована схема перестановок: x[0] -> x[1], x[1] -> x[2],..., x[k-1] -> x[0]. Одним из алгоритмов такого циклического сдвига является следующая последовательность действий. Поместим в буфер последний элемент массива (buf=x[k-1]). Выполним смещение остальных элементов вправо на одну позицию (x[i]=x[i-1]). При этом важен порядок смещения: на освободившееся место последнего элемента перемещается предпоследний, на место предпоследнего – предшествующий ему и т.д. В результате таких перемещений освобождается место нулевого элемента, на которое перемещается элемент из буфера. В данной задаче целесообразно выполнить вывод массива дважды: до и после циклического сдвига. /*Циклический сдвиг элементов в массиве с нулевой позиции на одну позицию вправо*/#include "stdafx.h"#include <iostream>using namespace std;#include <time.h>//подключение модуля для генератора случайных чисел#define max 100 void gen (int k, int a, int b,int x[max]);//прототип функции генерации массиваvoid out (int k, int x[max]);//прототип функции вывода массиваvoid sdvig (int k, int x[max]);//прототип функции циклического сдвига элементов массива int _tmain(int argc, _TCHAR* argv[]){ int mas[max]; int n; do { printf("\nВведите количество элементов массива n (n<=100):"); scanf ("%d",&n); } while (n>max); gen(n,-10,10,mas); printf("Вывод сгенерированного массива из %d элементов: \n",n); out(n,mas); sdvig (n,mas); printf("\nВывод массива после циклического сдвига элементов: \n"); out(n,mas); system("pause"); return 0;} //Описание функции генерации массиваvoid gen(int k,int a, int b, int x[max]){ int i; srand(time(NULL)*1000); for (i=0;i<k;i++){ x[i]=rand()%(b-a)+a; }} //Описание функции вывода массива в строкуvoid out (int k,int x[max]){ int i; for (i=0;i<k;i++) printf("%d ",x[i]);} //Описание функции циклического сдвига элементов массиваvoid sdvig(int k,int x[max]){ int i,buf; buf=x[k-1]; for (i=k-1;i>0;i--) x[i]=x[i-1]; x[0]=buf;}
Задания для выполнения 1. Объявите одномерный вещественный массив, в котором 10 элементов. Выполните генерацию массива, используя закономерность: 0; 0,1; 0,12; 0,123,… Выведите массив на экран в столбик. Оформите генерацию и ввод массива с помощью функций.
2. Объявите одномерный целочисленный массив, в котором 15 элементов. Выполните генерацию массива первыми 15 числами Фибоначчи. Выведите массив на экран в строку. Оформите генерацию и ввод массива с помощью функций. 3. Даны два натуральных числа a и b (a<b). Объявите одномерный целочисленный массив, в котором 10 элементов. Выполните генерацию массива первыми десятью цифрами дробной части частного a/b. Выведите массив на экран в столбец. Оформите генерацию и ввод массива с помощью функций. Например, для a =7, b =23 значениями элементов массива будут числа: 3 0 4 3 4 7 8 2 6 0. 4. Объявите одномерный целочисленный массив, в котором не более 100 элементов. Выполните генерацию массива первыми 100 простыми числами. Выведите массив на экран в строку (или в строки по 10 элементов в каждой). Оформите генерацию и вывод массива с помощью функций. 5. Дан одномерный целочисленный массив из N элементов, заданных с клавиатуры. Найти: количество и процентное соотношение положительных, отрицательных и нулевых элементов. 6. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Заменить все элементы массива, кратные 3, на сумму их цифр. 7. Дан одномерный вещественный массив из N элементов (N – нечетное), заданных случайными числами на промежутке [a; b). Поменять местами элементы симметричные относительно центрального. 8. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Поменять местами первый минимальный и последний максимальный элементы. 9. Дан одномерный вещественный массив из N элементов, заданных случайными числами на промежутке [a; b). Выполните циклический сдвиг элементов с n -ой позиции вправо на k позиций. 10. Индивидуальное задание. Дан одномерный целочисленный массив из N элементов, заданных случайными числами на промежутке [a; b). Оформите генерацию, вывод массива с помощью функций.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 241; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.218.62 (0.007 с.) |