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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2020, 16:39   #1
Georgi Judajev
 
Регистрация: 13.02.2020
Сообщений: 4
По умолчанию Передача массива в функцию

Здравствуйте!


Имеется задача,написать программу,с помощью которой:
1)С клавиатуры вводится целочисленный массив А и его вещественные элементы n (1 <= n <= 20)
2)Из элементов массива выбирается тот,который по своему значению минимально отличается от значения среднего арифметического всего массива
3)Найти данный элемент и вывести его вместе с индексом

NB_(в программе использовать минимум 3 собственные функции)!!!

Код я частично написал,сперва без собственных функций,после начал менять код с добавлением собственных.Сейчас программа выдаёт среднее значение,но не выдаёт минимально отличающееся от него,попробовал пока что только написать функцию для вычисления среднего арифметического.

Если кто-то понимает,что нужно исправить или добавить,буду благодарен,сейчас запутался и не понимаю,где ошибка.

язык Си:
Код:
#include <stdio.h>
#include <math.h>

float Average (double[]);

int main (void)
{
	
	// I.
	int n;
	do	
	{
		printf("Enter the integer value of the elements of the array A :\n");
		scanf("%d", &n);
		if (n < 1 || n > 20)
		{
			printf("Error!  1 <= Element <= 20 ");
		}
	}
	while( n < 1 || n > 20);
	double A[n];
	
	// II.

	double average = 0;
	int i;
	
	for(i = 0; i < n; i++)
		{	
			printf("Enter array A elements [%d]\n", i);
			scanf("%lf", &A[i]);
		}
		double MASS[n];

		float Avergae(double A[]) //Функция вычисляет арифметическое среднее
		{
			double average = 0;
			int i;
			for(i = 0; i < n; i++)
			{
				average+=A[i];
			}
		return average/n;
	}
	printf("Average = %.2lf\n", Avergae(A));
			
	int answer;
	double MIN;
	
	for(i=0 ;i < n; i++)
	{
		
        if(i==0)
			{
				MIN = fabs(average - MASS[i]);
				answer = i;
			}
			else
			{
				if(MIN > fabs(average - MASS[i]))
				{
					MIN = fabs(average - MASS[i]);
					answer = i;
				}
			}
		}
		A[0] = MASS[answer];
		A[1] = answer;
		
		// III.
		
		printf("Minimum value on %lf\n", A[0]);
		printf("Indkes : %.0lf\n", A[1]);
			return 0;
	}

Последний раз редактировалось BDA; 04.04.2020 в 00:11.
Georgi Judajev вне форума Ответить с цитированием
Старый 03.04.2020, 21:07   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Можно написать функцию ввода, вывода и главную в которой это все вызывается. В качестве аргументов функции достаточно подать тип float.

Писал с телефона. Идея думаю ясна. Нужны функции- есть функции.

Например
Код:

Float input(float arg)
{
Return arg = random()...
}

Void preview(Float arg)
{
 Cout<<arg<<endl;
}

Int main ()
{

....


For (int i=0;I<size;i++) {
a[i]=input(a[i]);
Preview(a[i]);
}

return 0;
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 04.04.2020, 00:24   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не все компиляторы могут выделить память под массив по заданному значению во время выполнения. Так что сразу задайте массив A размера 20 (максимально возможного по условию) или используйте динамическое выделение памяти.

3 пользовательские функции:
fill_array(double *arr, int count) - для ввода массива;
calc_average(double *arr, int count) - для поиска среднего арифметического;
search_element(double *arr, int count) - для поиска элемента и печати его и индекса.

Запросите количество элементов n в функции main. С помощью fill_array заполните массив A. Вызовите search_element для поиска, внутри которой вызовите calc_average для нахождения среднего арифметического.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача массива в функцию. SeemaN_tm Общие вопросы Delphi 11 16.02.2015 13:47
Передача массива в функцию и возврат массива из функции Gstar C# (си шарп) 6 14.10.2012 00:38
передача массива в функцию Fatal Error Общие вопросы C/C++ 7 09.07.2012 17:45
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
передача массива в функцию JOFRIF Общие вопросы C/C++ 8 02.08.2009 12:46