• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Одномерный Массив

  • Автор темы Автор темы makkksim
  • Дата начала Дата начала
M

makkksim

создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию.
получилось вот что:

#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=10+rand()%90;
cout<<" "<<mas<<" ";}
cout<<"\n";
int temp;
for(i=0; i<15; i++)
{int max=mas;
int pos_max=i;
for(int j=i+1; j<15; j++)
{if(max<mas[j])
{max=mas[j];
pos_max=j;}
temp=mas;
mas=mas[pos_max];
mas[pos_max]=temp;}
cout<<" "<<mas<<" ";}

return 0;
}

но массив заполняется значениями и больше 90, а сортируются только первые 11 элементов.
 
но массив заполняется значениями и больше 90
Ну а как вы хотели?
mas=10+rand()%90; // генератор выдает число, вы берете остаток от деления на 90 (этот остаток меньше 90) и прибавляете к нему 10
// получается случайное число в диапазоне [10, 100]

, а сортируются только первые 11 элементов.
неправда, ничего не сортируется ))
rrrfer@linux-2oyq:~/project> ./main
92 60 98 95 64 76 26 93 33 36 33 95 35 82 64
98 92 60 95 64 76 26 93 33 36 33 95 35 82 64 rrrfer@linux-2oyq:~/project>

А все потому, что надо научиться правильно форматировать код. Я в вашем коде ничего читать вообще не смог.
Отформатировал:
Код:
#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]<<" ";
}
}
И вижу, что перестановку элемента с максимальным вы делаете до того, как найдете этот максимальный элемент. - за фигурную скобку надо перенести те 3 строки. где перестановка происходит. Но если писать фигурные скобки как попало - то ничего не видно и зрение портится.

Добавлено: Т.е вот так:
Код:
#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]<<" ";
}
}
Правильно
 
Прочитайте вот эту статью, например:
Каждый программист оформляет код так, как ему удобно, если пишет для себя.
По-любому, удобно когда код оформлен единообразно (не как попало).
Но есть стандарты, на оформление кода, в каждой конторе они свои (но есть популярные). Популярные стандарты поддерживаются средами разработки (такими как вижуал студия, нетбинс и т.п.).

В статье там автор неплохо описывает зачем это надо, но ссылок на популярные стандарты нет. Посмотрите например стандарт кодирования IBM:
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab