| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | «  : 07-11-2008 13:04 »  |  | 
 
 Люди помогите пожалуйста сделать улитку на Borland С!суть в том что вводится n,создается массив размером n*n в котором числа от 1 и тд.и надо расположить эти числа по спирали,по часовой стрелке-чтобы последнее число было в середине!   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #1 : 07-11-2008 13:16 »  |  | 
 
 вправо - вниз - влево - вверх
 до тех пор пока ! n*n
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Вад | 
								|  | « Ответ #2 : 07-11-2008 13:40 »  |  | 
 
 Ещё надо шаги считать. ведь когда выходишь на второй виток спирали, заполняешь уже квадрат внутри заполненной области. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Джон 
								простоАдминистратор    Offline 
								Пол:    | 
								|  | « Ответ #3 : 07-11-2008 13:41 »  |  | 
 
 n - чётное или нечётное?
 Если нечётное, то отсортируй в порядке убывания и начинай из центра.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома."Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
 "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
 "All science is either physics or stamp collecting." Ernest Rutherford
 "Wer will, findet Wege, wer nicht will, findet Gründe."
 |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #4 : 07-11-2008 13:50 »  |  | 
 
 Джон, четность в сторону, будет последняя не строго по центру
 функция(направление, начало, конец)
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #5 : 07-11-2008 14:18 »  |  | 
 
 Хм...ну не важно строго последнее число по центру или нет!да я понимаю что сначала по контуру надо идти  и что потом матрица меньше будет с каждым разом становиться но как это реализовать незнаю!!!   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Sla | 
								|  | « Ответ #6 : 07-11-2008 14:23 »  |  | 
 
 Twitty, так я ж тебе показал как!начинай что-то делать
 и показывай код
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Мы все учились понемногу... Чему-нибудь и как-нибудь. |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #7 : 07-11-2008 14:32 »  |  | 
 
 ОК!   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #8 : 11-11-2008 11:07 »  |  | 
 
 Кароче вот код=>все работает   )   )   ) #include<stdio.h>#include<conio.h>
 void main()
 
 { int i=0,j,k=0,n,A[20][20];
 clrscr ();
 printf ("Vvedite znachenie n: ");
 scanf ("%d",&n);
 if (n<1) printf ("Oshibka vvoda"); else
 do  {i++;
 for (j=i; j<n-i+1; j++)  {k++; A[i][j]=k;}
 for (j=i; j<n-i+1; j++)  {k++; A[j][n-i+1]=k;}
 for (j=n-i+1; j>=i; j--)  {k++; A[n-i+1][j]=k;}
 for (j=n-i; j>=i+1; j--)   {k++; A[j][i]=k;}}
 while (i<=n/2);
 for (i=1; i<n+1; i++)
 {for(j=1; j<n+1; j++)
 printf("%4d",A[i][j]) ;
 printf( "\n");}
 }
 
 |  
						| 
								|  |  
								| « Последнее редактирование: 11-11-2008 11:36 от Алексей1153++ » |  Записан | 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #9 : 11-11-2008 11:37 »  |  | 
 
 не верю, что ЭТО работает   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #10 : 11-11-2008 19:23 »  |  | 
 
 а возми и запусти!100% даю-работает   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #11 : 11-11-2008 19:34 »  |  | 
 
 не, боюсь. вот в таком виде попробовал бы #include<stdio.h>#include<conio.h>
 void main()
 {
 int i=0;
 int j;
 int k=0;
 int n;
 int A[20][20];
 
 clrscr ();
 printf ("Vvedite znachenie n: ");
 scanf ("%d",&n);
 if (n<1)
 {
 printf ("Oshibka vvoda");
 }
 else
 do
 {
 i++;
 for(j=i; j<n-i+1; j++)
 {
 k++;
 A[i][j]=k;
 }
 
 for(j=i; j<n-i+1; j++)
 {
 k++;
 A[j][n-i+1]=k;
 }
 
 for(j=n-i+1; j>=i; j--)
 {
 k++;
 A[n-i+1][j]=k;
 }
 
 for(j=n-i; j>=i+1; j--)
 {
 k++;
 A[j][i]=k;
 }
 }
 while (i<=n/2);
 
 for (i=1; i<n+1; i++)
 {
 for(j=1; j<n+1; j++)
 {
 printf("%4d",A[i][j]) ;
 }
 printf( "\n");
 }
 }
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #12 : 11-11-2008 21:18 »  |  | 
 
 Мда...большая разница!так канечно красивее!   ) а может я место экономлю=) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #13 : 11-11-2008 21:20 »  |  | 
 
 да кстати не попробоваЛ  бы а попробовала  бы!ну это так к сведению!    |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #14 : 11-11-2008 21:47 »  |  | 
 
 Ну раз место экономить, так по полной, такая запись еше короче for (j=i; j<n-i+1; j++)  A[i][j]=++k;for (j=i; j<n-i+1; j++)  A[j][n-i+1]=++k;
 for (j=n-i+1; j>=i; j--)  A[n-i+1][j]=++k;
 for (j=n-i; j>=i+1; j--)   A[j][i]=++k;
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #15 : 12-11-2008 04:40 »  |  | 
 
 Twitty, а ты не экономь, работать проще будет на работе    А ещё преподу своему покажи - что ему больше понравится ? на чём экономишь то ? |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #16 : 12-11-2008 05:00 »  |  | 
 
 экономим совсем по полной   bool b;for (j=i; b; b=(j<n-i+1), b?A[i][j]=++k:0,j++);
 for (j=i; b; b=(j<n-i+1), b?A[j][n-i+1]=++k:0, j++);
 for (j=n-i+1; b; b=j>=i,b?A[n-i+1][j]=++k:0,j--);
 for (j=n-i; b; b=j>=i+1,b?A[j][i]=++k:0,j--);
 
а вот так экономят место настоящие джедаи, ступившие на тёмную сторону Силы bool b;for (j=i; b; b=(j<n-i+1), b?A[i][j]=++k:0,j++);for (j=i; b; b=(j<n-i+1), b?A[j][n-i+1]=++k:0, j++);for (j=n-i+1; b; b=j>=i,b?A[n-i+1][j]=++k:0,j--);for (j=n-i; b; b=j>=i+1,b?A[j][i]=++k:0,j--);
 |  
						| 
								|  |  
								| « Последнее редактирование: 12-11-2008 05:02 от Алексей1153++ » |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Twitty 
								Гость
 | 
								|  | « Ответ #17 :  12-11-2008 10:23 »   |  | 
 
 ты меня такими страшными вещами не пугай!а преподше моей вообще наплевать-просто мне в таком виде больше нравится   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #18 : 12-11-2008 11:23 »  |  | 
 
 ты меня такими страшными вещами не пугай!
 я и сам пугался   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	|  |