ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 «  : 26-12-2008 18:30 »   | 
								
								 | 
							  
							 
							задача такова :: Даны два упорядоченных массива А и В (необязательно одинаковой длины). В каждом из массивов могут быть совподающие элементы. Не используюя дополнительной памяти, найти количесво совподающих значений элементов А и В (т.е количество t, для которых t=A[i ] = B[j ] вот мой код ...ситуация такова что функция randomize которая должна выдовать мне случайные числа работает не совсем как надо. # include <stdio.h> # include <conio.h> # include <math.h> # include <time.h> # include <stdlib.h> int  main(void) {int a[1000],b[1000],n,m,w,i,j,l; clrscr(); randomize(); puts("\n Vvedite kol masA: "); scanf("%d",&n); puts("\n Vvedite kol masB: "); scanf("%d",&m);
  puts("Mass A:"); for (i=0;i<=n-1;i++) { a[i]=random(40); printf("%5d",a); }
 
  puts("\nMass B:"); for (i=0;i<=m-1; i++) { b[i]=random(40); printf("%5d",b); }
  			
  l = 0; for (i=0; i<n; i++) { t=0; for (j=0;j<m;j++) if (a[i]==b[j]) t++; if (t==1) l++; }
  printf("\n%u",t); getch();}  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 27-12-2008 04:05 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Paul
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 26-12-2008 21:06 »   | 
								
								 | 
							  
							 
							ЮрийFM, вместо random(40) используй a[i]=random() % 40 b[i]=random() % 40
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 26-12-2008 22:24 »   | 
								
								 | 
							  
							 
							ЮрийFM, это в каком же модуле C нашёл ты паскалевские функции Randomize и Random? Не правильнее ли говорить, что это вообще не работает?
  Но, допустим, что они есть, и где (в каком месте) тогда у тебя Randomize выдаёт случайные числа, как ты спрашиваешь?
   Соответствующая функция существует и в Turbo Pascal. а это же СИ++ вот попробуй кинуть random, как и randomize в Си++  #include <stdio.h>   #include <stdlib.h> //- в этом файле   int main(void)   {      int i;      randomize();      printf("10 случайных чисел от 0 до 99 \n\n");      for (i=0; i<10; i++)          printf("%d\n", rand()%100);   return 0;   }  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 27-12-2008 01:02 »   | 
								
								 | 
							  
							 
							ЮрийFM, Стандартно в этом хедере нет такой функции. Есть rand и srand. Я нашел похожее упоминание такой функции в своем справочнике, но это соотносится для FreeBSD. Но там связка random - srandom. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 28-12-2008 22:19 »   | 
								
								 | 
							  
							 
							Вот походу и вся задача...тока один вопросик как отсортировать два этих массива... т.е. А и В  #include <stdio.h> #include <stdlib.h> #include <conio.h> const int n=1000; void main() { int l=0,i,j,A[n],B[n]; randomize(); for( i=0 ; i<n ; i++ ) { A[i]=rand()%100; B[i]=rand()%100; } clrscr(); for( i=0 ; i<n ; i++ ) { for( j=0 ; j<n ; j++ ) if (A[i]==B[j]) l++; } printf("l=%d",l);  getch(); }  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 28-12-2008 22:26 »   | 
								
								 | 
							  
							 
							Есть много алгоритмов сортировки    Выбирай на вкус. Быстрая сортировка Хоара подходит в большинстве случаев, но если нужно самое простое решение - см сортировку пузырьком или что-нибудь в таком духе.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 28-12-2008 23:36 »   | 
								
								 | 
							  
							 
							вот ..я пробовал таким способом..но может ошибку пожежет кто исправить...ситуация такова...я хочу отсортировать два массива А и В ..но  пока хочу разобрать тока один чтобы понять как это происходит.. (мне важно логически понять).и после сортировки хочу вывести на экран отсортировнный массив т.е. в данном случае это массив А  #include <stdio.h> #include <stdlib.h> #include <conio.h> const int n=10; void main() { int l=0,i,j,A[n],B[n],k; randomize(); for( i=0 ; i<n ; i++ ) { A[i]=rand()%100; B[i]=rand()%100; };  for (i=n;i>1;i--)   //вот код на сортировку   for (j=0;j<i-1;j++)    if (A[i]>A[i+1])     {     k=A[i];     A[i]=A[i+1];     A[i+1]=k;     printf(" %d",k); //конец кода }; { clrscr(); for( i=0 ; i<n ; i++ ) { for( j=0 ;j<n ; j++ ) if (A[i]==B[j]) l++; } puts("Kolvo sovpavshih elementov A[i] and B[j] :"); printf("l=%d",l);  getch(); } }  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 28-12-2008 23:40 »   | 
								
								 | 
							  
							 
							Вот...сортировку Хоара...впервые слышу ...объясните как она работает...просто очень интересно... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 29-12-2008 06:36 »   | 
								
								 | 
							  
							 
							У тебя, насколько понимаю, попытка реализовать сортировку пузырьком. Ошибка в неверной индексации - точнее, в не совсем правильных значениях счётчиков. Вот пример реализации этой сортировки на C из википедии: # define SWAP(A,B) {A=A^B;B=A^B;A=A^B;} void bubblesort(int A[], int n) {     int i, j;       for(i = n-1 ; i > 0 ; i--)      {         for(j = 0 ; j < i ; j++)          {             if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);          }      } }
 А так, как у тебя, выйдет за границу массива (a[i], a[i+1]) и просто не совсем те элементы будет обменивать - по сути, совершит только 1 проход   Раз интересно,  описание сортировки Хоара в Википедии - там же есть и ряд других  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-12-2008 06:37 от Вад »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 29-12-2008 18:19 »   | 
								
								 | 
							  
							 
							извините что вопросов очень много ..но именно учёба залог успеха......вот и ещё один вопрос ....а можно ли вывести упорядоченный массив а и б на экран..сначало а и потом б ..я как пробовал то у меня выводит таким макаром Сначало число идёт массива а и после его число массива б ... и так далее...т.е. неудобство..    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 29-12-2008 19:51 »   | 
								
								 | 
							  
							 
							Показывай, как пробовал    Кстати, у тебя в предыдущем коде только 1 массив сортируется - не забудь и про это (лучше сортировку в отдельную функцию оформить).  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 29-12-2008 20:32 »   | 
								
								 | 
							  
							 
							да...я сначало хочу посмотреть чтобы одни хотябы массив сортировало...а вот мой код  #include <stdio.h> #include <stdlib.h> #include <conio.h> #define swap(A,B) {A=A^B; B=A^B; A=A^B;}   void sort(int A[],int n) // -вот через прототип sort я хочу чтобы после заполнения массива функция переходила на этот код... { int i, j; for(i=n-1;i>0; i--) { for(j=0; j<i; j++) { if(A[j]> A[j+1]) swap(A[j],A[j+1]); } } } const int n=20; void main() { int l=0,i,j,A[n],B[n]; randomize(); for(i=0; i<n; i++) { A[i]=rand()%100; printf(" %d",rand()%100 ); //печатает один элемент массива А  B[i]=rand()%100; printf(" %d",rand()%100);// печатает один элемент массива В  } sort(A,n);               // тут я хочу перейти на сортировку но не фурычит на моё горе for(i=n;i>0;i--) while((A[i]-A[i-1])>1) //clrscr();                 //очистку экрана я пока отложил чтобы видеть что поисходит после выполнен. for( i=0 ; i<n ; i++ ) { for( j=0 ;j<n ; j++ ) if (A[i]==B[j]) l++; } puts("Kolvo sovpavshih elementov A[i] and B[j] :"); printf("l=%d",l); getch();
  }
 
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									«  Ответ #12 : 29-12-2008 22:43 »    | 
								
								 | 
							  
							 
							Так. Во-первых, если хочешь выводить 2 массива раздельно - так и сделай для них циклы заполнения раздельно.  Во-вторых, твоя сортировка у меня работает    только я заменил ещё randomize() на srand(time(0)) - оно как-то привычнее (нужно включить ещё один заголовок - #include <time.h>) int main() {     // ...
      return 0; }
  - это по стандарту так должно быть в C++. А то void main() ещё не на всех компиляторах обязано компилироваться, это вольность такая   а вот этот кусок зависает - не выходит из цикла:     for(i=n;i>0;i--)         while((A[i]-A[i-1])>1)             for( i=0 ; i<n ; i++ )             {                 for( j=0 ;j<n ; j++ )                     if (A[i]==B[j]) l++;             }
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-12-2008 22:49 от Вад »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 30-12-2008 00:45 »   | 
								
								 | 
							  
							 
							Вот мучался...но сделал)))    Я прототипом сортировку сначало указал...а потом просто тыкнул на её в коде..а randomize я бы и не пользовался ..просто с паскаля осталось...А массивы отсортированные выводил по отдельности самым простым способом как и сортировал пузырьком.  решил на СИ++ ..перейти..вот тока граматика храмает...но это исправимо))) #include <stdio.h> #include <stdlib.h> #include <conio.h> #define swap(a,b) {int tmp=a;a=b;b=tmp;} const int n=100; void main() { int l=0,i,j,A[n],B[n]; randomize(); for( i=0 ; i<n ; i++ ) { A[i]=rand()%100; B[i]=rand()%100; } clrscr(); { puts(" Eto MASS_A"); for (i=0; i<n;i++) for (j=n-1;j>i;j--) if(A[j-1]>A[j]) swap(A[j-1],A[j]); for(i=0; i<n; i++) printf(" %d",A[i]); }; { puts("\n Eto MAS_B"); for (i=0; i<n;i++) for (j=n-1;j>i;j--) if(B[j-1]>B[j]) swap(B[j-1],B[j]); for(i=0; i<n; i++) printf(" %d",B[i]); };
  for( i=0 ; i<n ; i++ ) { for( j=0 ; j<n ; j++ ) if (A[i]==B[j]) l++; } printf("\n l=%d",l); getch(); }
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 30-12-2008 00:47 от ЮрийFM »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 30-12-2008 00:49 »   | 
								
								 | 
							  
							 
							Спасибо большое за помощь...   Тут походу правильно...верно?   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Антон (LogRus)
							
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 30-12-2008 05:09 »   | 
								
								 | 
							  
							 
							#include <stdio.h> for( i=0 ; i<n ; i++ ) { for( j=0 ; j<n ; j++ ) if (A[i]==B[j]) l++; } }
  Совсем не оптимально. Есть способ поизящней    в условии не спроста массивы отсортированы  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 30-12-2008 05:12 от LogRus »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Странно всё это.... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 30-12-2008 18:49 »   | 
								
								 | 
							  
							 
							Сопосб по изящней...в чём его изящество???  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 30-12-2008 21:44 »   | 
								
								 | 
							  
							 
							ЮрийFM, полагаю, изящество способа, на который намекает LogRus - в линейном времени исполнения    упорядоченные массивы позволяют оптимизировать подсчёт числа всех пар: время выполнения O(M+N) - где M и N - размеры двух массивов соответственно. Твой способ требует квадратичных затрат времени.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Антон (LogRus)
							
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 31-12-2008 04:34 »   | 
								
								 | 
							  
							 
							ЮрийFM, кроме того, будь я преподом, за твоё решенье поставил бы 3 от силы  4, просто так в условии про упорядоченность не пишут.
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Странно всё это.... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Антон (LogRus)
							
						 | 
						
							
								  | 
								
									
									 « Ответ #19 : 31-12-2008 04:39 »   | 
								
								 | 
							  
							 
							Вад, да ты как всегда прав
  ЮрийFM, будь я преподом, за твоё решенье поставил бы 3 от силы  4, просто так в условии про упорядоченность не пишут. Во вторых подумай о предельных значениях, например, 1E6 элементов в каждом массиве, твой способ будет медленнее в 1E6 раз медленнее, а из-за особенностей работы CPU, то скорее всего еще медленней.
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Странно всё это.... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 31-12-2008 21:19 »   | 
								
								 | 
							  
							 
							ДА...вы правы... Еслиб я знал..то я бы так и сделал...а как мне это реализовать в своей пограмме? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #21 : 01-01-2009 13:10 »   | 
								
								 | 
							  
							 
							ЮрийFM, подумай в направлении того, как бы пройти оба массива только по одному разу (а не проходить один из массивов n раз). Они сортированные, и это даёт подсказку    Имхо, самый простой способ догадаться: напиши две строчки чисел на бумаге, чтобы в каждой строке числа были упорядочены. Вроде такого: 1 3 3 5 6 9 10 10 14 3 6 8 9 9 9 11 16 19 Попробуй на бумаге отыскать подход, как двигаться по каждому из массивов, подсчитывая количество совпадающих элементов, чтобы двигаться по массивам только один раз и в одном направлении.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #22 : 01-01-2009 16:00 »   | 
								
								 | 
							  
							 
							  ...блин точно...сначало просто не обратил внимание...сортировка не ишла и я без сортировки пробовал смотреть одинаковые элементы... да ниче не скажешь.... мужик...спасибо Вад за наводку)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #23 : 01-01-2009 17:57 »   | 
								
								 | 
							  
							 
							вот походу так вроде...   j=0; for( i=0 ; i<n ; i++ ) if (A[i]==B[j++]) t++;  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #24 : 01-01-2009 18:18 »   | 
								
								 | 
							  
							 
							Мне кажется, не совсем. Результат сходится с результатом неоптимального варианта? Что будет, если в массиве A или B два и более элементов подряд одинаковые? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #25 : 01-01-2009 22:36 »   | 
								
								 | 
							  
							 
							тоже верняк...а что если брать тока один массив допустим А и попорядку каждый элемент массива А сверять с i ммассивом В...и в случае совподения t++    и пройдёт цикл тока один раз... или есть другой вариант..по такому же макару тока можно поверять в массиве В последовательность одинаковых элементов... т.е. если А= какому небудь элементу массива В то можно сделать есть ли ещё этот элемент в этом массиве.. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #26 : 02-01-2009 02:02 »   | 
								
								 | 
							  
							 
							вот ... походу нужно так...берём i массива А  и смотрим идет ли за i одинаковое число...если идёт то t++ -подсчитываем кол-во одинокаовых элементов(но только при том что А =B[j]) так же надо смотреть масиив В идет ли за j  элемент равный i если идёт то t++..
 for(i=0; i<n; i++) for(j=0; j<n; j++) if ((A[i]==A[i++]) && (A[i]==B[j])) t++; if ((B[j]==B[j++]) && (B[j]==A[i])) t++; это написанно не верно...возможно я не верно мыслю...  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #27 : 02-01-2009 12:08 »   | 
								
								 | 
							  
							 
							ЮрийFM, подсказка: если в массиве A некоторое число x встречается n раз, а в массиве B - m раз - то t будет увеличено на n*m, так? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							ЮрийFM
							
								Участник 
								
								 
								  Offline
								Пол:   
								
								Диплом 2 степени по Графике!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #28 : 02-01-2009 16:15 »   | 
								
								 | 
							  
							 
							да....логично)) тока наверно  t будет увеличено на n+m может?? по скольку.. если умножим то получиться произведение совпавших элементов массивов... а не количетво.     
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 02-01-2009 16:20 от ЮрийFM »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Учиться сложно...но интересно 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Вад
							
						 | 
						
							
								  | 
								
									
									 « Ответ #29 : 02-01-2009 16:27 »   | 
								
								 | 
							  
							 
							ЮрийFM, m*n - получится количество всех возможных пар одинаковых чисел x из A и B. Вроде, в условии про это. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |