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

Сортировка одномерного массива с помощью функции

Добавлено: 24 июл 2016, 11:26
Mary2222
Нужно написать функцию, которая будет сортировать массив по возрастанию, если первый элемент массива равен 0.
Помогите исправить ошибки, пожалуйста :)
Вот мой код:

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

#include "stdafx.h" 
#include <locale.h> 
#include <conio.h> 
#define q 6 
#define w 8 
 
void funcMass(int *tmas, int n) 
{ 
 int i,j,c,m,im; 
 
 if (tmas[0]==0) 
 {  
  for (j=n;j>1;j++) 
  { 
  m=tmas[0]; 
  im=0; 
  for (i=1;i<j;i++) 
  { 
   if (tmas[i]>m) 
   { 
    m=tmas[i]; 
    im=i; 
   } 
  } 
  c=tmas[im]; 
  tmas[im]=tmas[j-1]; 
  tmas[j-1]=c; 
 
  } 
 } 
} 
 
int main(int argc, char*argv[]) 
{ 
 setlocale (0,"RUS"); 
  
 int tmas1[q]={0,4,3,3,7,9}; 
 int tmas2[w]={0,4,2,3,7,9,11,5}; 
  
 funcMass(tmas1,q); 
 funcMass(tmas2,w); 
   
 printf("\n tmas1= %d", &tmas1); 
 printf("\n tmas2= %d", &tmas2); 
  
 getch(); 
 return 0; 
}

Re: Сортировка одномерного массива с помощью функции

Добавлено: 24 июл 2016, 12:15
Romeo
В C/C++ все массивы имеют индексы не от 1 до N, а от 0 до N-1. Проблема именно в этом.

Re: Сортировка одномерного массива с помощью функции

Добавлено: 25 сен 2016, 08:39
Слива
Вот еще проблема:
Строка 13: for(j=n;j>1;j++)
Если мы уменьшаем j от n до 1, то j нужно уменьшать, т.е. нужно написать j--. Но я бы рекомнедовал сделать так:
for(j = 0; j < n; j++).
Т.е. j++ оставляем, и сам так я всегда делаю :) .

Re: Сортировка одномерного массива с помощью функции

Добавлено: 25 сен 2016, 09:38
Слива
У Вас программа - бред полный. Найдите где-нибудь в Интернете готовое решение, сортировка методом пузырька или что-нибудь подобное. Вопрос еще актуален?

Re: Сортировка одномерного массива с помощью функции

Добавлено: 25 сен 2016, 10:21
Romeo
Теме 2 месяца. Ни о какой актуальности не может быть идти и речи. Это уже практически некропостинг.