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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 13:38   #11
kenwood2010
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 97
По умолчанию

pproger да какая разница просто реально тоже хочу разобраться что там не так! этот код рабочий если и он не пойдет то...
походу я понял в чем проблема
а ну попробуй

Код:
#include <conio.h> //где все #include

getch(); //поставь  перед return 0; в конце программы
return 0;
и скажи ответ.

pproger - твой код рабочий не напрягай мозг!
kenwood20072@rambler.ru ICQ: 701 302 135. (Программирование на C++, С. Решение задач по физике)

Последний раз редактировалось kenwood2010; 23.12.2010 в 13:58. Причина: теги
kenwood2010 вне форума
Старый 23.12.2010, 13:38   #12
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2katena88
господи, да выложи уже свой код
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 23.12.2010, 13:41   #13
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну и еще насчет 2-3 постов:
Код:
void NewArr(char*& arr, int size)
{
arr = new char[size];
}

int main()
{
//...
char* array;
int N = 10;
NewArr(array, N);
//...
}
Т.е. передавать указатель по ссылке. Ясное дело, это только для плюсов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума
Старый 23.12.2010, 13:43   #14
kenwood2010
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 97
По умолчанию

пост 11 и есть ответ на ее вопрос!
kenwood20072@rambler.ru ICQ: 701 302 135. (Программирование на C++, С. Решение задач по физике)
kenwood2010 вне форума
Старый 23.12.2010, 13:57   #15
katena88
Пользователь
 
Аватар для katena88
 
Регистрация: 25.10.2010
Сообщений: 41
По умолчанию

он длинный

Код:
#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;
}

int *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;
}

// вывод одномерного массива
int 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");
	}
}

int 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();

}
стало вылетать после того как я часть программы перенесла в функцию raspredelenie
Руки программиста должны быть прямые, а извилины кривые, но не наоборот

Последний раз редактировалось katena88; 23.12.2010 в 13:59.
katena88 вне форума
Старый 23.12.2010, 13:58   #16
katena88
Пользователь
 
Аватар для katena88
 
Регистрация: 25.10.2010
Сообщений: 41
По умолчанию

Цитата:
Сообщение от kenwood2010 Посмотреть сообщение
пост 11 и есть ответ на ее вопрос!
не помогло
Руки программиста должны быть прямые, а извилины кривые, но не наоборот
katena88 вне форума
Старый 23.12.2010, 14:03   #17
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

когда вылетает?
UltimaBeaR вне форума
Старый 23.12.2010, 14:06   #18
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

синтаксические и программные ошибки поправил, больше не вылетает. алгоритм не проверял
Код:
#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();

}

код - ТИХИЙ УЖАС.
+ у вас в задании не сказано, что исходный массив должен быть МАТРИЦЕЙ. зачем вы ее туда впихнули, одному богу известно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 23.12.2010, 14:10   #19
katena88
Пользователь
 
Аватар для katena88
 
Регистрация: 25.10.2010
Сообщений: 41
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
код - ТИХИЙ УЖАС.
+ у вас в задании не сказано, что исходный массив должен быть МАТРИЦЕЙ. зачем вы ее туда впихнули, одному богу известно
я не изучала язык Си.. просто месяц назад сказали написаль курсовую на Си))) вот и изучаем)))

и это не матрица, просто так удобнее
Руки программиста должны быть прямые, а извилины кривые, но не наоборот
katena88 вне форума
Старый 23.12.2010, 14:12   #20
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2katena88
Цитата:
и это не матрица, просто так удобнее
Цитата:
// объявление динамического массива
char **masssiv = create_mass(SIZE, SIZE);
а что тогда это? массив указателей на указатели. двумерный массив. матрица. или я чего то не понимаю в этой жизни?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистка динамического массива JohnnySuperb Общие вопросы Delphi 11 10.12.2010 07:47
очистка динамического массива BattleMage Общие вопросы C/C++ 1 19.09.2009 09:03
Освобождение динамического массива? VintProg Общие вопросы Delphi 15 28.08.2009 10:41
Сохранение динамического массива Horus92 Помощь студентам 3 07.05.2009 12:36
объявление массива Crasty Помощь студентам 7 05.11.2008 17:18