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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2010, 13:38   #1
Veronik@
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 27
Восклицание

21. Составить функцию для сортировки (упорядочения) массива mas из n элементов по возрастанию значений элементов:
void sort (int n, int *mas);

плиз. помогите!

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

int main()
{
	int a[10]={2, 9, 4, 1, 10, 12, 67, 68, 45, 37};
	int i, n, b;
	printf ("elements massiva\n");
	for (i=0; i<9; i++)
		printf ("%d", a[i]);

	for (n=1; n<=9; n++)
		for  (i=0; i<=9; i++)
			if (a[i]>a[i+1]){
				b=a[i+1];
				a[i]=a[i+1];
				a[i+1]=b;
			}
			printf("\n sortirovka\n");
			for (i=0; i<=9;i++)
				printf ("%4d", a[i]);
			return 0;
}
я как-то так сделала...но оно выводт числа по нескульку раз...

Последний раз редактировалось Stilet; 24.10.2010 в 14:18.
Veronik@ вне форума Ответить с цитированием
Старый 24.10.2010, 13:52   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
for (int i = 0; i < n; i++)
{
  for (int j = i; j < n; j++)
  {
    if (Mas[i] < Mas[j + 1])
    {
      Temp = Mas[j + 1];
      Mas[j + 1] = Mas[i];
      Mas[i] = Temp;
    }
  }
}
coNsept вне форума Ответить с цитированием
Старый 24.10.2010, 13:55   #3
Veronik@
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 27
По умолчанию

спасибо большое)

но я както не очень поняла...

Последний раз редактировалось Veronik@; 24.10.2010 в 14:01.
Veronik@ вне форума Ответить с цитированием
Старый 24.10.2010, 14:11   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
int main()
{
  int Mas[6] = { 10, 2, 30, 4, 5,  12 }; 
  int Temp;

  for (int i = 0; i < 6; i++)
  {
    for (int j = i; j < 6; j++)
    {
      if (Mas[i] > Mas[j + 1])
      {
        Temp = Mas[j + 1];
        Mas[j + 1] = Mas[i];
        Mas[i] = Temp;
      }
    }
  }

  for (int i = 0; i < 6; i++)
  {
    printf("[%d]", Mas[i]);
  }

  _getch();
  return 0;
}

Последний раз редактировалось coNsept; 24.10.2010 в 14:43.
coNsept вне форума Ответить с цитированием
Старый 24.10.2010, 14:18   #5
Veronik@
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 27
По умолчанию

пасиб....терь сё понятно...
Veronik@ вне форума Ответить с цитированием
Старый 24.10.2010, 14:23   #6
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
Код:
    ...
    int Mas[7] = { 10, 2, 30, 4, 5,  12 }; 
    ...
    for (int j = i; j < 6; j++)
    {
      if (Mas[i] > Mas[j + 1])
      {
      ...
И чему же, простите, равен Mas[6] ?..
Vago вне форума Ответить с цитированием
Старый 24.10.2010, 14:35   #7
Veronik@
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 27
По умолчанию

равен 12.....
Veronik@ вне форума Ответить с цитированием
Старый 24.10.2010, 14:38   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Неа. 12 равен Mas[5] ибо массивы в си с нуля начинаются.
Mas[0] == 10.
А Mas[6] равел белиберде, либо компилятор вообще не захочет работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.10.2010, 14:40   #9
Veronik@
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 27
По умолчанию

я знаюч то с нуля....
у мя уже голова кипит..они нифига не сортируются...

спасибо всем большое....всё работет...

Последний раз редактировалось Stilet; 24.10.2010 в 15:24.
Veronik@ вне форума Ответить с цитированием
Старый 24.10.2010, 14:46   #10
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Простите, обсчитался...

Код:
#include <stdio.h>
#include <conio.h>

int main()
{
  int Mas[6] = { 10, 2, 30, 4, 5,  12 };
  int i, j, Temp;

  for (i = 0; i < 5; i++)
  {
    for (j = i; j < 5; j++)
    {
      if (Mas[i] > Mas[j + 1])
      {
        Temp = Mas[j + 1];
        Mas[j + 1] = Mas[i];
        Mas[i] = Temp;
      }
    }
  }
  
  for (int i = 0; i < 6; i++)
  {
      printf("[%d]", Mas[i]);
  }
  
  getch();
   
  return 0;
}
coNsept вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массивов lulik Паскаль, Turbo Pascal, PascalABC.NET 1 10.06.2010 20:43
Сортировка массивов... Goldcoding Помощь студентам 0 30.05.2010 23:47
Сортировка массивов IngaInga Помощь студентам 1 25.05.2010 16:50
Сортировка массивов Devi_dark Помощь студентам 1 04.04.2009 19:46