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

Тема в разделе "C/C++/C#", создана пользователем makkksim, 18 ноя 2013.

  1. makkksim

    makkksim New Member

    Регистрация:
    18 ноя 2013
    Сообщения:
    2
    Симпатии:
    0
    создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию.
    получилось вот что:

    #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 элементов.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Ну а как вы хотели?
    mas=10+rand()%90; // генератор выдает число, вы берете остаток от деления на 90 (этот остаток меньше 90) и прибавляете к нему 10
    // получается случайное число в диапазоне [10, 100]

    неправда, ничего не сортируется ))
    А все потому, что надо научиться правильно форматировать код. Я в вашем коде ничего читать вообще не смог.
    Отформатировал:
    Код (Text):
    #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 строки. где перестановка происходит. Но если писать фигурные скобки как попало - то ничего не видно и зрение портится.

    Добавлено: Т.е вот так:
    Код (Text):
    #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. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Прочитайте вот эту статью, например: http://trivialcoding.ru/Textbook/Lessons/nice-code.html
    Каждый программист оформляет код так, как ему удобно, если пишет для себя.
    По-любому, удобно когда код оформлен единообразно (не как попало).
    Но есть стандарты, на оформление кода, в каждой конторе они свои (но есть популярные). Популярные стандарты поддерживаются средами разработки (такими как вижуал студия, нетбинс и т.п.).

    В статье там автор неплохо описывает зачем это надо, но ссылок на популярные стандарты нет. Посмотрите например стандарт кодирования IBM: http://pic.dhe.ibm.com/infocenter/spssdc/v...g_standards.htm
     
Загрузка...
Похожие Темы - Одномерный Массив
  1. vbnoob
    Ответов:
    1
    Просмотров:
    948
  2. LifeT
    Ответов:
    1
    Просмотров:
    1.208
  3. Crock95
    Ответов:
    0
    Просмотров:
    1.276
  4. Dexet
    Ответов:
    1
    Просмотров:
    1.392
  5. dambaldor30
    Ответов:
    1
    Просмотров:
    1.144

Поделиться этой страницей