Форум программистов, компьютерный форум CyberForum.ru

Пара вопросов про массивы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 15:43     Пара вопросов про массивы #1
у меня есть пара вопросов,хотя один можно сказать относится к функциям..но тема у нас в курсе-массивы. Так вот:
1.
Не могу найти максимальный элемент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main()
{
const int n=10;
int x[n];
int max=0;
for(int i=0;i<n;i++)
{
    x[i]=rand()%10;
    cout<<"x["<<i<<"]="<<x[i]<<endl;
}
 
for(int i=0;i<n;i++)
{
    if(x[i]>x[i+1])
        max=x[i];
    
}
 
cout<<"max="<<max<<endl;
}



2.
функция,которая из одного массива записывает в другой те цифры,которые при делении на 5 дают остаток 2

у меня вопрос, в главной функции когда вызывает функция input,по параметрам передается массив и его размер...но функция типа void а массив с размером-локальные данные,как можно получить назад тот результат,который был разработан в функции input..да и не ссылки и не указатели...не пойму...
И еще, разве 2%5=2???
C++
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
40
41
42
43
44
45
void input(int x[],int n);
int calc(int x[],int y[],int n);
void out(int x[],int j);
 
void main()
{
const int n=5;
int x[n],y[n];
input(x,n);
cout<<endl;
int pat=calc(x,y,n);
out(y,pat);
}
 
void input(int x[],int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<"x["<<i<<"]=";
        cin>>x[i];
    }
}
 
int calc(int x[],int y[],int n)
{
    int j=0;
    for(int i=0;i<n;i++)
    {
        if(x[i]%5==2)
        {
            y[j]=x[i];
            j++;
        }
    }
    return j;
}
 
 
 
void out(int x[],int n)
{
    for(int i=0;i<n;i++)
        cout<<"x["<<i<<"]="<<x[i]<<endl;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2010, 15:43     Пара вопросов про массивы
Посмотрите здесь:

пара вопросов по GUI C++
C++ вставление строк и пара вопросов
C++ Пара вопросов по С++
C++ Пара вопросов по функторам stl
Пара вопросов по итераторам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
15.11.2010, 15:46     Пара вопросов про массивы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main()
{
const int n=10;
int x[n];
 int max;
for(int i=0;i<n;i++)
{
        x[i]=rand()%10;
        cout<<"x["<<i<<"]="<<x[i]<<endl;
}
 max=x[0];
for(int i=1;i<n;i++)
{
        if(x[i]>max)
                max=x[i];
        
}
 
cout<<"max="<<max<<endl;
}
#1 вроде так должно получиться)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.11.2010, 15:58     Пара вопросов про массивы #3
^Tecktonik_KiLLeR, Передается массив в функцию. По сути он всегда передается по ссылке, если я не ошибаюсь.
Торможу.
Передается указатель на его первый элемент.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 16:06  [ТС]     Пара вопросов про массивы #4
ForEveR, мда...ну и учителя у нас -_-...я то сам знаю с++ немножко а однокурсники только только учатся..я представляю какие у них заблуждения щас.
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
15.11.2010, 16:44     Пара вопросов про массивы #5
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
цифры,которые при делении на 5 дают остаток 2
это же
C++
1
 ~%5==2
???


да точно))

Добавлено через 8 минут
C++
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void fun (int *,int);
 
int _tmain(int argc, _TCHAR* argv[]) // вводим основной массив и его элементы
{
    int *a;
    int i,n;
    cin>>n;
    a=new int [n];
    for (i=0;i<n;i++) cin>>a[i];
    for (i=0;i<n;i++) cout<<a[i]<<" ";
    cout<<endl;
    fun (a,n);
     return 0;
}
 
void fun (int *a, int n) // сама функция
{
    int i,t=0,z,*b;
    for (i=0;i<n;i++)
    {
        if (a[i]%5==2)  t++;
    }
    b=new int [t];
    for (i=0;i<t;i++)
        for(z=0;z<n;z++)
            if (a[z]%5==2)
            {
                    b[i]=a[z];
                    break;
            }
            for (i=0;i<t;i++) cout<<b[i]<<" ";
            cin>>i;
}
Вроед так №2

Добавлено через 10 минут
прошу прощения №2 не совсем доделан

Добавлено через 11 минут
C++
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 "stdafx.h"
#include <iostream>
using namespace std;
 
void fun (int *,int);
 
int _tmain(int argc, _TCHAR* argv[])
{
    int *a;
    int i,n;
    cin>>n;
    a=new int [n];
    for (i=0;i<n;i++) cin>>a[i];
    for (i=0;i<n;i++) cout<<a[i]<<" ";
    cout<<endl;
    fun (a,n);
            return 0;
}
 
void fun (int *a, int n)
{
    int i,t=0,z,*b,f=0;
    for (i=0;i<n;i++)
    {
        if (a[i]%5==2)  t++;
    }
    b=new int [t];
    for (i=0;i<t;i++)
        for(z=f;z<n;z++)
            if (a[z]%5==2)
            {
 
                    b[i]=a[z];
                    f=z+1;
                    break;
            }
            for (i=0;i<t;i++) cout<<b[i]<<" ";
            cin>>i;
}
вот сейчас должно быть ок)
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 17:08  [ТС]     Пара вопросов про массивы #6
а как без дин.массивов?)
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
15.11.2010, 17:29     Пара вопросов про массивы #7
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
а как без дин.массивов?)
Где именно? в главной функции?

Добавлено через 2 минуты
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
И еще, разве 2%5=2???
цел число от 2/5 = 0
2-0=2.
Если не ошибаюсь)
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
15.11.2010, 17:45     Пара вопросов про массивы #8
Вот функции обработки массивов:
1. Нахождение индекса первого максимального элемента массива.
C
1
2
3
4
5
6
7
8
9
int a_max(int *a, int count)
{
  int max_ind, i;
  max_ind = 0;
  for(i = 1; i < count; i++)
    if(a[i] > a[max_ind])
      max_ind = i;
  return max_ind;
}


2. Нахождение индекса первого минимально элемента массива.
C
1
2
3
4
5
6
7
8
9
int a_min(int *a, int count)
{
  int min_ind, i;
  min_ind = a[0];
  for(i = 0; i < count; i++)
    if(a[i] < a[min_ind])
      min_ind = i;
  return min_ind;
}


3. Нахождение суммы элементво массива.
C
1
2
3
4
5
6
7
8
int a_sum(int *a, int count)
{
  int s, i;
  s = 0;
  for(i = 0; i < count; i++)
    s += a[i];
  return s;
}


4. Сортировка массива методом пузырька.
C
1
2
3
4
5
6
7
8
9
10
11
12
void a_sort(int *a, int count)
{
  int i, j, temp;
  for(i = 1; i < count; i++)
    for(j = 0; j < count - 1; j++)
      if(a[j] < a[j+1])
      {
        temp = a[j];
        a[j] = a[j+1];
        a[j+1] = temp;
      }
}


5. Заполнение массива случайными числами от -10 до 10.
C
1
2
3
4
5
6
void a_rand_init(int *a, int count)
{
  int i;
  for(i = 0; i < count; i++)
    a[i] = rand() % 10 - rand() % -10;
}


6. Вывод элементов масиива.
C
1
2
3
4
5
6
7
void a_print(int *a, int count)
{
  int i;
  for(i = 0; i < count; i++)
    printf("%d; ", a[i]);
  printf("\n");
}


Пример работы программы.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define COUNT 10
int main(void)
{
  int a[COUNT];
  srand((unsigned int)time(0));
  a_print(a, COUNT);
  a_rand_init(a, COUNT);
  a_print(a, COUNT);
  printf("max a = %d\nmin a = %d\nsort a: ", a[a_max(a, COUNT)], a[a_min(a, COUNT)]);
  a_sort(a, COUNT);
  a_print(a, COUNT);
  getch();
  return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 18:09  [ТС]     Пара вопросов про массивы #9
а как найти минимальный элемент?

Добавлено через 1 минуту
ладно уже нашел
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
15.11.2010, 18:11     Пара вопросов про массивы #10
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
а как найти минимальный элемент?
C++
1
2
3
4
5
6
7
8
       min=a[0];
      for (i=1;i<n;i++)
{
        if (a[i]<min)
        {
              min=a[i];
        }
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 18:20  [ТС]     Пара вопросов про массивы #11
Mencey, Вот у вас там есть пример,пример первый:
Нахождение индекса первого минимально элемента массива.
вот щас дошел до этой задачи,и я не пойму,что означает здесь слово ПЕРВЫЙ??первый две,первые три,четыре?или же самый первый?Самый первый для самого первого и минимальный и максимальный..не понятно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.11.2010, 20:25     Пара вопросов про массивы #12
^Tecktonik_KiLLeR, Допустим есть массив.

2 1 3 4 5 1 6 7 8 1

Какой минимум? 1.
Итого первый минимум имеет индекс 1 (2 если считать с единицы)
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.11.2010, 22:40  [ТС]     Пара вопросов про массивы #13
ForEveR, то есть два минимальных числа-первый из них так?второй,третий?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.11.2010, 23:18     Пара вопросов про массивы #14
^Tecktonik_KiLLeR, Есть несколько числа с минимальным значением. Фраза индекс первого из минимальных подразумевает индекс первого по порядку числа с минимальным значением. На остальные плевать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2010, 19:48     Пара вопросов про массивы
Еще ссылки по теме:

C++ Пара вопросов о рандомайзере и RadioButton
Пара глупых вопросов C++
C++ Пара вопросов по C++ 11

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
16.11.2010, 19:48  [ТС]     Пара вопросов про массивы #15
ForEveR, спасибо.
Yandex
Объявления
16.11.2010, 19:48     Пара вопросов про массивы
Ответ Создать тему
Опции темы

Текущее время: 19:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru