Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2016, 14:13   #1
BERTY123
 
Регистрация: 16.12.2015
Сообщений: 8
Восклицание Функция

Объясните как работает
Задание : Написать программу переворачивающую массив Действия оформить в виде функции Вывод массива на экран оформить в виде функции
Основная программа формирует массив из N целых чисел вызывает функцию преобразования массива выводит полученный массив через функцию
Количество и значения элементов вводятся с клавиатуры Передачу массива в функцию организовать по адресу Использовать динамические массивы

Код:
#include <stdio.h>
#include <stdlib.h>
 
void f (int *,int );
int main()
{
    int n;
    int *a,i;
    scanf("%i",&n);
    a = new int [n];
    for (i=0;i<n;i++)
    scanf("%i",&a[i]);
    f(a,n);
    for(i=0;i<n;i++)
    printf(" %i ",a [i] );
}
void f (int x[], int b)
{
int i,j,m;
for (i=0,j=b-1;i<j;i++,j--)
{
    m=x[i];
    x[i]=x[j];
    x[j]=m;
}
}

Последний раз редактировалось BERTY123; 22.05.2016 в 14:20.
BERTY123 вне форума Ответить с цитированием
Старый 23.05.2016, 12:28   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
#include <stdio.h>    // Подключение стандартной библиотеки ввода/вывода (короче чтобы scanf и printf работало)подробнее здесь http://microsin.net/programming/avr/...acilities.html
#include <stdlib.h>   // Подключение стандартной библиотеки выделения памяти (но это для языка просто С)

void f(int *, int);  // Прототип пользовательской функции, только я не понял почему отличается от заголовка самой ф-ци void f(int x[], int b). Ну ладно - работает и хорошо    

int main()           // Прототип пользовательской фунции
{
	int n;           // Определение переменных, которые используются в
	int *a, i;       // программе

	scanf("%i", &n);   // считать целую ("%i") переменную с черного окна и присвоить ее к "n"
	a = new int[n];    // Зарезервировать в памяти место под n элементов.

	for (i = 0; i<n; i++)    // Заполняем массив a[] целыми цифрами ("%i"),
		scanf("%i", &a[i]);  // которые ввел пользователь

	f(a, n);                 // САМОЕ СОЧНОЕ. Вызов ф-ии f(a, n) передав в неё параметры a и n.
	                         // Заданные параметры (а и n) заменят формальные (int x[], int b) и
                             // ф-я f все подчитает. Она будет изменять сам массив, поэтому она ничего не возвращает (ключевое слова void в void f(int x[], int b))


	for (i = 0; i<n; i++)     // Вывод на экран результата (массива a[i]). Тип элементов определен как целый ("%i")
		printf(" %i ", a[i]);

	system("pause");    // Я дописал. Чтобы черное окно не закрывалось быстро. 
	return 0;           // Я дописал. Ф-я  int main() выводит в операционную систему целое значение, например 0; (Если придет не 0-ль - значит программа завершилась аварийно)
}


// САМОЕ СОЧНОЕ.

void f(int x[], int b)                  
{
	int i, j, m;
	for (i = 0, j = b - 1; i<j; i++, j--) //Цикл начинается при i = 0 и j=b-1=n-1=3;
		                                  // Цикл будет завершен когда i<j
	{                                     // Каждый шаг цикла i=i+1, а j=j-1;
		m = x[i];                         // обмен каждые 2-а элемента вектора 
		x[i] = x[j];                      // используя дополнительную переменную м
		x[j] = m;
	}

}

Последний раз редактировалось ura_111; 23.05.2016 в 12:30.
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция Tatooine Microsoft Office Access 2 19.12.2014 11:33
Функция Axrik Помощь студентам 2 27.01.2012 11:52
Функция в с++ likos18 Помощь студентам 1 11.01.2012 13:51
функция Lemo Помощь студентам 7 24.10.2008 12:54
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50