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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2016, 08:28   #1
MasterYod
Новичок
Джуниор
 
Регистрация: 20.12.2016
Сообщений: 2
По умолчанию Помогите с перемещением printf из одной фунkции в другую

Помогите переместить printf из одной функции в другую.
Язык Си.
Изначальное задание: Найти в массиве и вывести значение наиболее часто встречающегося элемента.

Программу написал- работает корректно, НО вывод получившихся элементов на экран происходит в функции с решением (функция с именем digit в коде).

То есть проблема заключается в том, что в функции digit не удается переместить printf("Значение: %d\n", ar[i]); в функцию с именем output, и чтобы программа работала так же как и сейчас...

Я так думаю, что так как
Здесь у меня printf в цикле. То есть printf будет работать и выводить значения на экран до тех пор пока цикл не завершиться. По этому нужно как-то сохранить накопленные значения в этом цикле, то есть скорее всего записать их в новый массив, после вернуть этот массив rerurn-ом и вывести на экран при помощи printf из функции output. Но сделать это у меня не получается....

Код
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#define SIZE 6

int i, j,max, count;


void input(int *ar) //Проверка ввода на тип
{

for (i = 0; i < SIZE; ++i)
{
printf("mas[%d] = ", i);
if (!scanf_s("%d", &ar[i]))
{
printf("Введено некорректное значение\n");
system("pause");
exit(0);
}
}
}

int maxx(int *ar) //создаем цикл на максимальное кол-во повторений.
{
for (i = 0; i < SIZE; i++)
{
int count = 0;
for (j = i; j < SIZE; j++)
{
if (ar[i] == ar[j])
{
++count;
}
}

if (count > max)
{
max = count;
}
}

return max;
}

void digit(int *ar) //перебираем элементы массива и сравниваем при каких значениях было достигнуто максимальное повторение.
{
for (i = 0; i < SIZE; i++)
{
count = 0;
for (j = i; j < SIZE; j++)
{
if (ar[i] == ar[j])
{
++count;
}
}
if (count == max)
{
printf("Значение: %d\n", ar[i]);
}
}

}


void output(int *ar, int max)
{

printf("Повторено в количестве: %d\n", max);
}


int main()
{
setlocale(LC_ALL, "Russian");

int arr[SIZE];

input(arr); //ввод массива
maxx(arr); //количество повторений
digit(arr); //повторяющееся значение
output(arr, max);

system("pause");
return 0;
}
MasterYod вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переместить printf из одной функции в другую. MasterYod Помощь студентам 0 20.12.2016 21:59
Скопировать id с одной таблицы на другую таблицу другую форму Staziah2 БД в Delphi 1 08.09.2015 09:14
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Помогите с интеграцией данных из одной книги в другую. Lexeron Microsoft Office Excel 5 05.03.2009 13:01
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57