0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 21
1

массивы.не могу разобраться

14.05.2010, 21:57. Показов 1636. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. В массиве X из N элементов (N не больше 30) определить максимальный элемент и его номер. Число N и значения элементов массива задаются вводом.
2. В массиве A из N элементов поменять местами первый элемент с последним, второй - с предпоследним и т.д. Значение N задать при помощи ввода, а сам массив сформировать из случайных чисел в диапазоне от -100 до 100.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2010, 21:57
Ответы с готовыми решениями:

Указатели, массивы. Не могу разобраться
Перелопатил весь инет, так не смог разобраться ((( Вот общее задание, ято бы было понятно:...

Не могу написать комментарии для функции поиска, не могу разобраться...
void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int found, start, end; //...

Массивы/списки, не могу разобраться как их создавать
Ребят, помогите, я не могу понять как мне сделать систему боёвки, у меня была идея, то что игроку...

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

20
31 / 31 / 2
Регистрация: 09.04.2010
Сообщений: 60
14.05.2010, 22:06 2
Тебе бы почитать по больше, скажем начни с классики - Бьерн Страуструп, или еще лучше - Язык С (Керниган, Ричи). Там база, и очень хорошо изложена. То что ты спрашиваешь это основы, если ты в них сам не разберешься, то дальше будет еще тяжелее... В общем удачи!
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.05.2010, 22:13 3
1)
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
#include <iostream>
#include <ctime>
#include <iomanip>
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
    int *MAS=new int [size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++) {
        MAS[i]=rand()%20+1;
        std::cout << std::setw(3) << MAS[i]; }
    std::cout << std::endl;
 
    int max=0, indexMax;
    for (int i=0; i<size; i++)
        if (max<MAS[i])
        {
            max=MAS[i];
            indexMax=i;
        }
 
    std::cout << "Index: " << indexMax << std::endl;
    std::cout << "Max: " << max << std::endl;
 
    system("pause");
    delete []MAS;
    return 0;
}
0
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
14.05.2010, 22:13 4
я бы не рекомендовал страуступа для начала(основ)
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 22:14 5
Цитата Сообщение от Blacktender Посмотреть сообщение
1. В массиве X из N элементов (N не больше 30) определить максимальный элемент и его номер. Число N и значения элементов массива задаются вводом.
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
#include <iostream.h>
#include <stdio.h>
using namespace std;
 
int main()
{
int i;
int N = 0;
int* Ar;
int max = 0, index_max = 0;
 
    while(N<=0){
        printf("Введите число элементов массива N = "); 
        cin>>N;
        cout<<endl;
    }
    try{
        Ar = (int*)malloc(sizeof(int)*N);
        for(i=0;i<N;i++){
            printf("A[%d] = ",i);
            cin>>Ar[i];
            cout<<endl;
            if(Ar[i]>max){
                max = Ar[i];
                index_max = i;
            }
        }
        printf("Элемент %d равен %d самый максимальный",index_max,max); 
    }
    __finally
    {
        free(Ar);
    }
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.05.2010, 22:15 6
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
#include <iostream>
#include <ctime>
#include <iomanip>
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
    int *MAS=new int [size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++) {
        MAS[i]=rand()%20+1;
        std::cout << std::setw(3) << MAS[i]; }
    std::cout << std::endl;
 
    int tmp;
    for (int i=0, j=size-1; i<j; i++, j--) {
            tmp=MAS[i];
            MAS[i]=MAS[j];
            MAS[j]=tmp; }
 
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++)
        std::cout << std::setw(3) << MAS[i];
 
    std::cout << std::endl;
    system("pause");
    delete []MAS;
    return 0;
}
1
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 22:18 7
На работоспособность код не проверял писал в обычном блокноте.
Автору темы будет че подебагерить.
Это самая пратика.
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 22:35 8
Цитата Сообщение от Blacktender Посмотреть сообщение
1. В массиве X из N элементов (N не больше 30) определить максимальный элемент и его номер. Число N и значения элементов массива задаются вводом.
Вариант с STL:
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
  size_t size;
  std::cout << "size = ";
  std::cin >> size;
 
  int* arr = new int[size];
 
  for (size_t i = 0; i < size; ++i) {
    std::cout << "arr[" << i + 1 << "] = ";
    std::cin >> arr[i];
  }
 
  std::cout << "Array: " << std::endl;
  std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
 
  int* max_element = std::max_element(arr, arr + size);
  std::cout << "Max " << *max_element << " at index " << max_element - arr << std::endl;
 
  return 0;
}
2
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 21
14.05.2010, 22:39  [ТС] 9
Может у меня с компилятором что не так, каждый раз выдает ошибки. допустим вот эту : [Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.05.2010, 22:42 10
CyBOSSeR, а почему, для нахождение индекса, мы пишем
C++
1
max_element - arr
?
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 22:44 11
Blacktender, есть два варианта:
1. Убить в себе и на компьютере Builder, тем более шестой.
2. Правильно создать проект - вам необходимо консольное приложение, а не оконное.
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.05.2010, 22:45 12
neske, max_element - указатель на максимальный, arr на начало, их разность дает индекс
обычная практика узнать индекс элемента, если есть итератор на него и итератор начала
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 22:48 13
Цитата Сообщение от neske Посмотреть сообщение
CyBOSSeR, а почему, для нахождение индекса, мы пишем
Этой строкой мы получаем разницу между указателями на максимальный элемент и начало массива. Это разница выражена в количестве элементов.
1
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 22:54 14
Зачем так глубоко человеку просто массивы нужны а Вы STL.
Давайте еще MFC CArray или VCL

Добавлено через 48 секунд
На обычном С кто нибуть напишет без примудростей. Я думаю этого и ждут.
0
CyBOSSeR
14.05.2010, 23:02
  #15

Не по теме:

Цитата Сообщение от Sudoki Посмотреть сообщение
Зачем так глубоко человеку просто массивы нужны а Вы STL.
Давайте еще MFC CArray или VCL
У нас на форуме один Blacktender что ли?
Или разнообразие вариантов решения это плохо?

0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 23:04 16
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
У нас на форуме один Blacktender что ли?
Или разнообразие вариантов решения это плохо?
Просто эта тема для новичка вряд ли он заценит все эти навороты. А наоборот еще больше запутается.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.05.2010, 23:16 17
Sudoki, ну вот именно из таких вариантов, я для себя выделяю что-то новое, и думаю, не только я .
1
CyBOSSeR
14.05.2010, 23:17
  #18

Не по теме:

Цитата Сообщение от Sudoki Посмотреть сообщение
Просто эта тема для новичка вряд ли он заценит все эти навороты. А наоборот еще больше запутается.
Если ему это действительно нужно - то хотя бы поверхностно он сможет разобраться, да и кто ему мешает спросить, если что? А если ему это не нужно - то он и запутываться не будет, т.к. не будет разбираться.

1
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 21
15.05.2010, 15:14  [ТС] 19
СПАСИБО вам огромное, коды работают, всё прекрасно!!
Если не трудно, будьте добры помочь с этими заданиями.Буду очень признательна!

1. Определить сумму положительных и сумму отрицательных элементов матрицы размерами N*M (N и M не больше 10). Матрицу сформировать из случайных чисел в диапазоне от -100 до 100.

2. Дана целочисленная квадратная матрица порядка n. Матрица сформирована из случайных чисел в диапазоне от -10 до 10. В строках с отрицательным элементом на главной диагонали найти:
а) сумму всех элементов;
б) наибольший из всех элементов.

3.Вводится строка произвольного текста. Вывести на экран последнее слово (слова разделены пробелами).

Добавлено через 10 минут
вот начало этой задачи:
Определить сумму положительных и сумму отрицательных элементов матрицы размерами N*M (N и M не больше 10). Матрицу сформировать из случайных чисел в диапазоне от -100 до 100.

дальше торможу..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <conio.h>
#include <iostream.h>
 
using namespace std;
 
int main()
{
        int matrix[10][10];
        int M, N, min(-100), max(100);
 
        cin >> M;
        cin >> N;
 
....
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
15.05.2010, 17:56 20
1)
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
#include <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    int i,j;
    const int Row=5;
    const int Column=5;
    int MAS[Row][Column];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (i=0; i<Row; i++)
    {
        for (j=0; j<Column; j++) {
            MAS[i][j]=rand()%201-100;
            std::cout << std::setw(3) << MAS[i][j]; }
        std::cout << std::endl;
    }
    std::cout << std::endl;
 
    int sum_pos=0, sum_neg=0;
    for (i=0; i<Row; i++)
        for (j=0; j<Column; j++)
        {
            if (MAS[i][j]>0) sum_pos+=MAS[i][j];
            if (MAS[i][j]<0) sum_neg+=MAS[i][j];
        }
 
    std::cout << "Sum of positive elements: " << sum_pos;
    std::cout << std::endl;
    std::cout << "Sum of negative elements: " << sum_neg;
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
Добавлено через 7 минут
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <algorithm>
#include <numeric>
 
int main ()
{
    int i,j;
    const int size=5;
    int MAS[size][size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (i=0; i<size; i++)
    {
        for (j=0; j<size; j++) {
            MAS[i][j]=rand()%21-10;
            std::cout << std::setw(3) << MAS[i][j]; }
        std::cout << std::endl;
    }
    std::cout << std::endl;
 
    for (i=0; i<size; i++)
        for (j=0; j<size; j++)
            if ((i==j) && (MAS[i][j]<0))
                {
                    std::cout << "Maximum element in row " << i+1 << ": " << *std::max_element(MAS[i], MAS[i]+size);
                    std::cout << std::endl;
                    std::cout << "Sum of elements in row " << i+1 << ": " << std::accumulate (MAS[i], MAS[i]+size, 0);
                    std::cout << "\n\n";
                }
 
    system("pause");
    return 0;
}
Добавлено через 9 минут
Вторая задача без STL:

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 <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    int i,j,k;
    const int size=5;
    int MAS[size][size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (i=0; i<size; i++)
    {
        for (j=0; j<size; j++) {
            MAS[i][j]=rand()%21-10;
            std::cout << std::setw(3) << MAS[i][j]; }
        std::cout << std::endl;
    }
    std::cout << std::endl;
 
    int sum, max;
    for (i=0; i<size; i++)
        for (j=0; j<size; j++)
            if ((i==j) && (MAS[i][j]<0)) {
                sum=0; max=0;
                for (k=0; k<size; k++) {
                    if (max<MAS[i][k]) max=MAS[i][k];
                    sum+=MAS[i][k]; }
                std::cout << "Maximum element in row " << i+1 << ": " << max;
                std::cout << std::endl;
                std::cout << "Sum of elements in row " << i+1 << ": " << sum;
                std::cout << "\n\n"; }
 
    system("pause");
    return 0;
}
1
15.05.2010, 17:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2010, 17:56
Помогаю со студенческими работами здесь

Не могу разобраться разобраться с кодом меню
Добрый день. Я понимаю, что тут все, наверное, элементарно. Но я только начала изучение js и пока...

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax,...

Не могу найти ошибку!! не могу не как разобраться! надо до завтра.
условие: Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол...

Не могу разобраться с If-ами. Не могу найти ошибку
Только начал знакомство с программированием. Преподаватель задал задание, написать программу в VLC...

Не могу разобраться с циклами (не могу понять как сделать так чтоб цикл считывал каждый элемент, без массива!)
Натурально число а вводится пользователем.Определить количество не нудевых цифр этого числа . Не...

Массивы,разобраться бы Оо
есть 2 задачи которые я не могу решить, помогите,пожалуйста...будьте добры...завтра сдавать( 1. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru