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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2013, 15:33   #1
CMSon
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 16
Смех Переделать код

День добрый!
Имеется вот такой код:
Код:
void find (char *file, int z)
{
	struct _finddata_t c_file; 
	intptr_t hFile; 
	int a=strlen (file);
	
	char *name = (char*)malloc((a+5)*sizeof(char));
	strcpy(name, file);
	strcat(name, "\\*.*");
		
		if( (hFile = _findfirst(name, &c_file )) == -1L )
			printf( "No files in current directory!\n" );
		else
		{	
			do {
				int result = !strcmp (c_file.name, "." ) || !strcmp (c_file.name, ".." );
					if (!result)
					{	
						int n=z;
							for ( ;n>0;n--)
							{
								printf ("	");
								break;

							}
						
						if ( c_file.attrib & _A_SUBDIR ) 
						{
							printf ("Subdirectory: ");
							printf( "%-12s %9ld\n", c_file.name);							
							char *name1 = (char*)malloc((a+strlen (c_file.name)+2)*sizeof(char));
							strcpy(name1, file);
							strcat(name1, "\\");
							strcat(name1, c_file.name);
							find (name1, z+1);
							free (name1);
							
						}
						else 
							
							printf( "%10ld %-20s\n", c_file.size, c_file.name); 
						
						
					}
				} while( _findnext( hFile, &c_file ) == 0 );
			_findclose( hFile );

		}
	free (name);
}



int main( void )
{
	  find ( " ", 0 );
	  
}
Его нужно слегка переделать, чтобы результат компиляции был тем же, но содержание кода, так скажем, было немного иным.

Последний раз редактировалось CMSon; 31.01.2013 в 16:49.
CMSon вне форума Ответить с цитированием
Старый 31.01.2013, 15:39   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Что бы не был похож
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 31.01.2013, 15:40   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

CMSon

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

Да, тяжело сдавать одну лабу всей группой - преподы чётко тему секут :lol:
Rififi вне форума Ответить с цитированием
Старый 31.01.2013, 15:45   #4
CMSon
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 16
По умолчанию

Особенно, когда сам по-другому написать не можешь
CMSon вне форума Ответить с цитированием
Старый 31.01.2013, 15:51   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста:
Код:
void find (char *file, int z){struct _finddata_t c_file;	intptr_t hFile; int 
a=strlen (file);	char *name = (char*)malloc((a+5)*sizeof(char));strcpy(name, 
file);strcat(name, "\\*.*");if( (hFile = _findfirst(name, &c_file )) == -1L )
 printf( "No files in current directory!\n" );else{do {int result = !strcmp (c_file.name,
 "." ) || !strcmp (c_file.name, ".." );if (!result){	int n=z;for ( ;n>0;n--) 
printf ("	");}if ( c_file.attrib & _A_SUBDIR ){printf ("Subdirectory: ");
printf( "%-12s %9ld\n",c_file.name);char *name1 = (char*)malloc((a+strlen(c_file.name)+2)*sizeof(char));
strcpy(name1, file);strcat(name1, "\\");strcat(name1, c_file.name);
find (name1, z+1);free (name1);}else printf( "%10ld %-20s\n", c_file.size,
 c_file.name);}} while( _findnext( hFile, &c_file ) == 0 );_findclose( hFile );}free (name);}int main( void ){find ( " ", 0 ); 
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.01.2013, 16:40   #6
CMSon
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 16
По умолчанию

И препод покарает за такой код
CMSon вне форума Ответить с цитированием
Старый 31.01.2013, 16:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Просил форму изменить? - получай измененную форму.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.01.2013, 16:48   #8
CMSon
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 16
По умолчанию

Благодарю
Видимо, фигово вопрос поставлен
CMSon вне форума Ответить с цитированием
Старый 31.01.2013, 16:52   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
фигово вопрос поставлен
Бывает... )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.01.2013, 17:01   #10
Lolyash
Новичок
Джуниор
 
Регистрация: 31.01.2013
Сообщений: 3
По умолчанию

Я вот не знаю, может можно как-то цикл изменить?
Lolyash вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать код Faton 11 Общие вопросы C/C++ 6 21.01.2013 02:11
Как переделать код Дмитрий_dz Общие вопросы Delphi 3 17.12.2012 01:50
переделать код Frank63 Паскаль, Turbo Pascal, PascalABC.NET 1 05.11.2012 15:45
Не могу переделать код из С++ в Си FRATER1234 Общие вопросы C/C++ 11 02.11.2011 11:02
Переделать код Hepri Работа с сетью в Delphi 3 20.08.2009 20:28