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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2020, 00:34   #1
Bastep
 
Регистрация: 17.03.2020
Сообщений: 5
По умолчанию Двумерные массивы. Файловый (бинарный) вводвывод

Как сделать вот этот код из одномерного массива в двумерный.
Код:
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

// Из исходного массива символов, заполненного случайным образом
//символами с кодами в диапазоне от 21 до 254 выделить в отдельные массивы
//буквы латинского алфавита как заглавные так и прописные Проведите сортиpовку
//полученных массивов Для контроля результата сделать распечатку
//массивов в том числе исходного


//
char **create_mass(int rows, int cols)
{
	int i;
	char **ret = (char  **)malloc(rows * sizeof(char  *));
	for (i = 0; i < rows; i++)
		ret[i] = (char *)malloc(cols * sizeof(char ));
	return ret;
}

char *create_mass1(int len)
{
	char *ret = (char *)malloc(sizeof(char) * len);
	return ret;
}

// Ф-ция сортировки
int Sortirovka(int a, char* c)
{
	int i,j;
	int x;
	for(i=0;i<a-1;++i)
	{
		for(j=i+1;j<a;++j)
		{
			if (c[i]<c[j])
			{
				x= c[i];
				c[i]=c[j];
				c[j]=x;
			}
		}
	}
	return 0;
}

// Ф-ция проверки, попадает ли символ c
// в диапазон от first до last
int poisk(char c, char first, char last)
{
	char s;
	for(s=first;s<=last;++s)
		if (s==c)
			return 1;
	return 0;
}

// вывод одномерного массива
void print (char* M, int S)
{
	int i;
	for (i = 0; i < S; ++i )
		printf("%c ",M[i]);
}
// функция заполнения двумерного массива случайными символами от 21 до 254
void zapolnenie(char **mass, int rows, int cols)
{
	int i, j;
	int min = 21, max = 254;
	for ( i = 0; i < rows; ++i )
		for ( j = 0; j < cols; ++j )
			mass[i][j] = rand() % (max - min + 1) + min;
}
// функция вывода двумерного массива на экран
void print_d(char **mass, int rows, int cols)
{
	int i, j;
	for (i = 0; i < rows; i++) {
		for (j = 0; j < cols; j++) {
			printf("%c ", mass[i][j]);
		}
		printf("\n");
	}
}

void raspredelenie(char**mass, char *Z, char *P, int SIZE,int *a, int *b)
{
	int i, j;
	*a = 0;
	*b = 0;
	for( i=0; i<SIZE; ++i)
	{
		for(j = 0; j<SIZE; ++j)
		{
			if ( poisk(mass[i][j],'A','Z') )
			{
				Z[*a]= mass[i][j];
				(*a)++;
			}
			if ( poisk(mass[i][j],'a','z') )
			{
				P[*b]= mass[i][j];
				(*b)++;
			}

		}
	}
}

int main()
{

	const int SIZE=10;

	// объявление динамического массива
	char **masssiv = create_mass(SIZE, SIZE);

	//заполнение исходного массива
	zapolnenie(masssiv, SIZE, SIZE);


	// вывод на экран исходного массива
	print_d(masssiv, SIZE, SIZE);


	// Поиск в двумерном массиве латинских букв заглавных и прописных
	// и распределение их в соответствующие массивы


	int len = 100;
	char *zag = create_mass1(len);
	char *pro = create_mass1(len);
	int a, b;
	raspredelenie(masssiv, zag, pro, SIZE, &a, &b);

	// Вывод  массива Заглавных букв на экран
	printf("\n Zaglavnye bukvy: ");
	print (zag, a);

	// Сортировка массива
	printf("\n otsostirovannii massiv: ");
	Sortirovka(a, zag);
	// Вывод результата на экран
	print (zag, a);

	// Вывод  массива прописных букв на экран
	printf("\n Propisnye bukvy: ");
	print (pro, b);

	// Сортировка массива
	printf("\n otsortirovannii massiv: ");
	Sortirovka(b, pro);

	// Вывод результата на экран
	print (pro, b);
	getch();

}
Bastep вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы ZelFar Помощь студентам 4 06.03.2012 09:57
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Цикл с параметром, массивы, матрицы, функции, файловый тип Dimasik777 Помощь студентам 7 30.11.2009 13:38