Страница 1 из 1

Упорядочить массив

Добавлено: 12 дек 2004, 22:11
Demm
Есть задачка.
Дано 2 массива, упорядоченных по возростанию.Надо создать новый массив из 2 также упорядоченный по возростанию.

Код: Выделить всё

#include <iostream.h>
#include <stdio.h>
#include <conio.h>


int A[10],B[10],C[20];
int i,j,k,m,n;

void main()
{
	cout<<"Vvedite chislo elementov v massive A: ";
			cin>>n;
			if((n>10)||(n<1))
			{
				do
				{
					cout<<"nevernoe znechenie,povtorite vvod: ";
					cin>>n;
				}
				while((n>10)||(n<1));
			}
	 	cout<<"Vvedite elementi v massive A: ";
	cout<<"ot 1 do 10";
	cout<<"\n";
	for(i=1; i<=n; i++)
  cin>>A[i];
	cout<<"\n";
 	 cout<<"Vvedite chislo elementov v massive B: ";
			cin>>m;
			if((m>10)||(m<1))
			{
				do
				{
					cout<<"nevernoe znechenie,povtorite vvod: ";
					cin>>m;
				}
				while((m>10)||(m<1));
			}
	 	cout<<"Vvedite elementi v massive B: ";
	cout<<"ot 1 do 10";
	cout<<"\n";
	for(j=1; j<=m; j++)
  cin>>B[j];
	cout<<"\n";
i=1; 
j=1;
k=1;
do 
{ 
	while (k<=n+m)
if (A[i]>B[j])
{
  C[k]= B[j];
  j= j++;
}
else
{
  C[k]= A[i];
  i= i++;
}
k= k++;
if (i>n)
{
  for (i=j; i<=m; i++)
  {
    C[k]= B[i];
    k= k++;
	}
}
else 
if (j>m)
{
  for (j=i; j<=n; j++)
  {
    C[k]= A[j];
    k=k++;
  }

}
\\78 стр

for (i=1; i<=n; i++)
 {printf("massiv A:\n");
   printf(" %d\n",A[i]);
 }
 printf("massiv B:\n");
 for (j=1; j<=m; j++)
 {printf("massiv B:\n");
 printf(" %d\n",B[j]);}


 for (k=1; k<=n+m; k++)
 {printf("Poluchenniy massiv:\n");
 printf(" %d\n",C[k]);}
 getch();
}
}\\98 стр
ПОчему на работает.
Выдает ошибку syntax error : '}' в 98 стр.
Если убрать - типа нет конца.
Че не так????

Добавлено: 13 дек 2004, 12:25
Tima
Как решить полностью задачу подумаешь сам, а вот ошибка какая отвечу: что это у тебя do делает на 49 строке? Ты неправильно используешь while на 51 строке - нет закрывающей фигурной скобки. И вообще порядок оформления - табы использовать надо, тогда не будет таких траблов.

Добавлено: 14 дек 2004, 15:12
Demm
Она вроде решенаЮ только не работает :( .Оформление хромает - согласен. Я использую цикл repeat until() (это из паскаля).Цикл от while все повторят до 78 строки пока к<n+m.Я его правильно реализовал?

Добавлено: 14 дек 2004, 15:48
Kolinus
естессно неправильно
конструкция do while - то есть блок должен заканчиваться на while(k<=m+n) и тоогда мот будет ок.
а щас у тебя while вложен в do, а не ограничивает его

Добавлено: 14 дек 2004, 16:01
Romeo
Бардак, одним словом. Предлагаю правильно, используя TAB, оформить код. После этого все недостающие скобки и логические неурядицы станут видны, как на ладони. Разбираться в коде, который подобным образом отформатирован - бесполезная трата времени.

Добавлено: 14 дек 2004, 19:54
Demm
Kolinus, спасибо. Я написал фигню, теперь все работает!!!