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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 20:17   #1
STALKER888
 
Регистрация: 25.11.2009
Сообщений: 6
Вопрос Упорядочение массива

Ребят подскажите, что я не так делаю? Почему этот код не работает?
Нужно вывести числа от меньшего к большему.

Код:
#include "stdafx.h"
#include "stdlib.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int A[30],B[40],C[71];
	int i=0,j=0,k=0,p,b,n=71;
	
	for(i=0;i<30;i++)
	{
		A[i]=0+rand()%99;
		C[k]=A[i];
       
	}
	for(j=0;j<40;j++)
	{
		
		B[j]=0+rand()%99;	
		C[k]=B[j];
		
	}
	do
	{
	for(k=0,p=0;k<n-1;k++)
		if(C[k]>C[k+1])
		{
			b=C[k];
			C[k]=C[k+1];
			C[k+1]=b;
			p=p+1;
		}
		n--;
	}
	while(p>0);
	
	for(k=0;k<71;k++)
	{
		printf("%d ",C[k]);
	}

	return 0;
}
Изображения
Тип файла: jpg proga.jpg (43.1 Кб, 148 просмотров)
STALKER888 вне форума Ответить с цитированием
Старый 04.12.2009, 20:28   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

у вас не инициализируется массив С
counter вне форума Ответить с цитированием
Старый 04.12.2009, 21:07   #3
STALKER888
 
Регистрация: 25.11.2009
Сообщений: 6
По умолчанию

Всмысле? Я чтото не совсем понял.
STALKER888 вне форума Ответить с цитированием
Старый 04.12.2009, 21:23   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
int _tmain(int argc, _TCHAR* argv[])
{
	int A[30],B[40],C[70];
	int i,j,t;

	for(i=0;i<30;i++)
	{
		A[i]=0+rand()%99;
		C[i]=A[i];

	}
	for(i=0;i<40;i++)
	{

		B[i]=0+rand()%99;
		C[30+i]=B[i];

	}
	for (i = 0; i < 70-1; i++) {
	for (j = 70-1; j > i; j--) {
	 if (C[i]>C[j+1]) {
	   t=C[i];
	   C[i]=C[j+1];
	   C[j+1]=t;
	 }
	}
	}


	for(i=0;i<70;i++)
	{
		printf("%d ",C[i]);
	}

	return 0;
}
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 04.12.2009, 22:11   #5
STALKER888
 
Регистрация: 25.11.2009
Сообщений: 6
По умолчанию

Теперь выдаёт такую ошибку и упорядочил не совсем правильно(
Изображения
Тип файла: gif pr.gif (19.0 Кб, 57 просмотров)
STALKER888 вне форума Ответить с цитированием
Старый 05.12.2009, 16:34   #6
STALKER888
 
Регистрация: 25.11.2009
Сообщений: 6
По умолчанию

Ну , что кто нибудь знает в чём ошибка то?
STALKER888 вне форума Ответить с цитированием
Старый 05.12.2009, 16:46   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от russian-stalker
Код:
	for (i = 0; i < 70-1; i++) {
	for (j = 70-1; j > i; j--) { // тут нужно j = 70 - 2
	 if (C[i]>C[j+1]) {
	   t=C[i];
	   C[i]=C[j+1];
	   C[j+1]=t;
	 }
	}
	}
В цикле начальное значение j присваивалось 69, а потом сразу использовалось j+1, что за пределами массива... отсюда и предупреждение
netrino вне форума Ответить с цитированием
Старый 05.12.2009, 21:29   #8
STALKER888
 
Регистрация: 25.11.2009
Сообщений: 6
По умолчанию

Спасибо большое ошибка больше не вылетает...Но почему то всё равно упорядочение не правильное.
Изображения
Тип файла: jpg er.jpg (19.3 Кб, 140 просмотров)
STALKER888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Упорядочение одномерного массива. Arzamaks Помощь студентам 4 25.11.2009 09:46
PHP: использование элемента массива как массива Sudia Помощь студентам 1 20.02.2009 20:48
Упорядочение элементов массива Юлёк PHP 2 28.01.2008 21:27
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44