powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / одномерный массив
5 сообщений из 5, страница 1 из 1
одномерный массив
    #38469223
mak_710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создать одномерный массив,

заполнить его случайными значениями,

отсортировать массив по убыванию.

получилось вот что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <cstdlib>
#include <iomanip>

using namespace std;

int main()
{
  srand(time(NULL));
  int mas[15];
  int i;
  for(i=0; i<15; i++)
  {
    mas[i]=10+rand()%90;
    cout<<" "<<mas[i]<<" ";
  }
  cout<<"\n";
  int temp;
  for(i=0; i<15; i++)
  {
      int max=mas[i];
      int pos_max=i;
      for(int j=i+1; j<15; j++)
      {
          if(max<mas[j])
          {
                max=mas[j];
                pos_max=j;
          }
          temp=mas[i];
          mas[i]=mas[pos_max];
          mas[pos_max]=temp;
      }
      cout<<" "<<mas[i]<<" ";
  }
  return 0;
}



но массив заполняется значениями и больше 90, а сортируются только первые 11 элементов.
...
Рейтинг: 0 / 0
одномерный массив
    #38469241
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mak_710,

rand()%90 приниммает значения от 0 до 89, а это выражение

10+rand()%90

, будучи смещённым на +10, от 10 до 99, соответственно.
...
Рейтинг: 0 / 0
одномерный массив
    #38469245
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут ошибка.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      for(int j=i+1; j<15; j++)
      {
          if(max<mas[j])
          {
                max=mas[j];
                pos_max=j;
          }
          temp=mas[i];
          mas[i]=mas[pos_max];
          mas[pos_max]=temp;
      }



"сортируются только первые 11 элементов. " -- это неверное утверждение. Оно вообще не сортируется.
...
Рейтинг: 0 / 0
одномерный массив
    #38469270
mak_710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, спасибо, помогло. нашел еще вариант: mas[i]=(10+rand())%90
...
Рейтинг: 0 / 0
одномерный массив
    #38469273
mak_710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, а здесь лишние скобки нашел

int temp;
for(i=0; i<15; i++)
{int max=mas[i];
int pos_max=i;
for(int j=i+1; j<15; j++)
if(max<mas[j])
{max=mas[j];
pos_max=j;}
temp=mas[i];
mas[i]=mas[pos_max];
mas[pos_max]=temp;
cout<<" "<<mas[i]<<" ";}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / одномерный массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]