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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2015, 04:13   #1
tisit
Пользователь
 
Регистрация: 15.12.2014
Сообщений: 24
Вопрос Правильность программы ( Найти номер столбца массива с наименьшим кол-вом нечетных элементов). C++

Написал программу
Задание: Найти номер столбца массива с наименьшим кол-вом нечетных элементов и раскрасить этот столбец при выводе бирюзовым цветом.

Подскажите правильно ли я ее составил

Код:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <ctime>
#include <cstdlib>
using namespace std;


void fillArrayRandomNumber(int **&arr, int n, int m, int from, int to){
	std::srand(std::time(0));
	// Выделим память, заданную с клавиатуры
	arr = (int**)realloc(arr, n * sizeof(int*));	// для строк
	for(int i = 0; i < n; i++){
		arr[i] = (int*)malloc(m * sizeof(int));		// для столбцов в строке
		for(int j = 0; j < m; j++){
			arr[i][j] = std::rand() % abs(to - from) + from;
		}
	}
}


int main()
{
	int n = 0, m = 0;
	int count = 0, countArr = 0;	// Счетчик последовательностей, размерность для массива maxElement
	// Двумерный массив для хранения рандомных значений
	int **arrayInput = (int**)malloc(sizeof(int*));
	// Массив для хранения кол-ва нечетных элементов по значению в каждом столбце
	int *minArray;

	printf("Input size array:\nN = ");
	scanf("%d", &n);
	printf("Input size array:\nM = ");
	scanf("%d", &m);

	// Заполняем массив случайными числами
	fillArrayRandomNumber(arrayInput, n, m, 1, 10);

	printf("Printf random array:\n");
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++){
			printf("%d\t", arrayInput[i][j]);
		}
		printf("\n");
	}

	minArray = (int*)malloc(m * sizeof(int));
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++){
			// Если текущий элемент в столбце нечетный, то
			if(arrayInput[j][i] % 2 != 0)
				count++;		// Увеличиваем счетчик кол-ва неч. эл.
		}
		minArray[i] = count;
		count = 0;
	}

	int min = minArray[0];
	int indexMin = 0;
	for(int i = 0; i < m; i++){
		if(min > minArray[i]) {
			min = minArray[i];
			indexMin = i;
		}
	}
	printf("\nIndex column = %d\n", indexMin + 1);

	system("pause");
	return 0;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.04.2015 в 09:20.
tisit вне форума Ответить с цитированием
Старый 05.04.2015, 09:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Запусти программу - что она покажет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2015, 16:07   #3
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Найти номер столбца массива с наименьшим кол-вом нечетных элементов
Ваша программа работает, только вы не предусмотрели случай, что делать, если получится более одного столбца с минимальным количеством нечётных чисел.
Цитата:
раскрасить этот столбец при выводе бирюзовым цветом.
Если не ошибаюсь, консоль windows такого не умеет. Можно изменить цвет только у всех выведенных символов.
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 05.04.2015, 16:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
консоль windows такого не умеет.
Умеет:
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если кол-во нечетных элементов массива A(n,m) больше 5, то найти среднее арифметическое отрицательных элементов каждой строки, ина qwerty321456 Помощь студентам 7 24.12.2014 16:46
Найти и вывести на экран индексы четных элементов каждой строки и нечетных элементов каждого столбца. Richik123 Помощь студентам 0 27.11.2012 16:29
Найти сумму и кол-во элементов каждого столбца кратных К1 и К2 Richik123 Помощь студентам 0 27.11.2012 16:13
В целочисленном одномерном массиве A(N) найти номер последнего максимального значения среди нечетных элементов (Pascal) Vladimir Ryabov Помощь студентам 0 27.11.2011 13:59
В массиве G(6;8) определить номер столбца с наименьшим количеством нулей. Катюня Помощь студентам 2 21.01.2009 06:26