Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.09.2011
Сообщений: 44
1

Ошибка в одномерном массиве

17.03.2012, 18:27. Показов 522. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 
 int imin,imax,i,max;
 
 
 int a[14];
 
 
 for (i=1;i<15;i++) {
      a[i]=StrToFloat(StringGrid1->Cells[i][1]);
      imax=1;
      max=a[1]; }
        for (i=2;i<15;i++)
        if (a[i]>max)
          {
            imax=i;
             max=a[i];
         }
 
    StringGrid1->Col=imax;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
 int imin,imax,i,min;
 
 
 int a[14];
 
 
  for (i=1;i<15;i++)
      a[i]=StrToFloat(StringGrid1->Cells[i][1]);
  imin=1;
  min=a[1];
  for (i=2;i<15;i++)
    if (a[i]<min) {
 
      imin=i;
      min=a[i] ;
    }
 
    StringGrid1->Col=imin;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 
int temp;
 int imin,imax,i;
 
 
 int a[14];
 
 temp= a[imin];
 a[imin]= a[imax];
 a[imax]= temp;
  for (i=1;i<15;i++)
     StringGrid1->Cells[i][1]=FloatToStr(a[i]);
}
//---------------------------------------------------------------------------
Выдает ошибку на Button3Click...
Помогите исправить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2012, 18:27
Ответы с готовыми решениями:

В одномерном массиве, состоящем из п вещественных элементов
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов...

В одномерном массиве посчитать сумму элементов
в одномерном массиве посчитать сумму элумунтов,находящихся в чётных позициях(и желательно в Vectore)

Как оптимально обработать 3 миллиарда ячеек в одномерном массиве
Надо обработать 3 миллиарда ячеек в одномерном массиве Какой алгоритм посоветуете? тип переменных...

Функция, находящая минимальный нечетный элемент в целочисленном одномерном массиве
Описать функцию целого типа min_elem(a, n), которая находит минимальный нечетный элемент в...

9
LK
Заблокирован
17.03.2012, 19:52 2
Текст ошибки огласите.
0
1 / 1 / 0
Регистрация: 30.09.2011
Сообщений: 44
17.03.2012, 20:10  [ТС] 3
Цитата Сообщение от LK Посмотреть сообщение
Текст ошибки огласите.
Project Project5.exe raised exception class EAccessViolation with message 'Access violation at address 00401D71 in module 'Project5.exe'. Read of address 041CF23C'. Process stopped. Use Step or Run to continue.
0
LK
Заблокирован
17.03.2012, 20:45 4
Access Violation в деталях Для начала.
0
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
17.03.2012, 20:47 5
Переменные imin и imax нужно проинициализировать
0
1 / 1 / 0
Регистрация: 30.09.2011
Сообщений: 44
17.03.2012, 21:08  [ТС] 6
Цитата Сообщение от Sergey-K Посмотреть сообщение
Переменные imin и imax нужно проинициализировать
Как это сделать?
0
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
17.03.2012, 21:13 7
Например так:
C++
1
2
imin = 0;
imax = 0;
0
1 / 1 / 0
Регистрация: 30.09.2011
Сообщений: 44
17.03.2012, 21:24  [ТС] 8
Цитата Сообщение от Sergey-K Посмотреть сообщение
Например так:
C++
1
2
imin = 0;
imax = 0;
Ошибку больше не выдает, но все цифры в массиве меняются непонятно чем
0
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
17.03.2012, 21:39 9
Цитата Сообщение от more Посмотреть сообщение
цифры в массиве меняются непонятно
Массив тоже не инициализирован
0
1 / 1 / 0
Регистрация: 30.09.2011
Сообщений: 44
17.03.2012, 23:54  [ТС] 10
Все равно не работает

Добавлено через 1 час 5 минут
Все разобрался! Дана последовательность из 15 целых чисел. Найти наименьшее и наибольшее число в это последовательности и поменять местами эти числа.
Если кому надо, вот рабочий код:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 
 int max;
 
for (i=1;i<16;i++) {
      a[i]=StrToFloat(StringGrid1->Cells[i][1]);
      imax=1;
      max=a[1]; }
        for (i=2;i<16;i++)
        if (a[i]>max)
          {
            imax=i;
             max=a[i];
         }
 
    StringGrid1->Col=imax;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
 int min;
 
 for (i=1;i<16;i++)
      a[i]=StrToFloat(StringGrid1->Cells[i][1]);
  imin=1;
  min=a[1];
  for (i=2;i<16;i++)
    if (a[i]<min) {
 
      imin=i;
      min=a[i] ;
    }
 
    StringGrid1->Col=imin;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 
 temp= a[imin];
 a[imin]= a[imax];
 a[imax]= temp;
  for (i=1;i<16;i++)
     StringGrid1->Cells[i][1]=FloatToStr(a[i]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 randomize;
         for (i=1;i<16;i++)
          {
            a[i]=random(100);
              StringGrid1->Cells[i][1]=IntToStr(a[i]);   }
}
//---------------------------------------------------------------------------
Глобальные переменные:
C++
1
2
int imin,imax,temp,i;
int a[15];
0
17.03.2012, 23:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2012, 23:54
Помогаю со студенческими работами здесь

В одномерном массиве вычислить количество элементов в самой длинной серии
в одномерном массиве вычислить количество элементов в длинной серии. серия - это последовательность...

В одномерном массиве найти самую длинную серию одинаковых элементов
В одномерном массиве найти самую длинную серию одинаковых элементов. Сделайте в с++ через файлы...

Описать функцию, которая дублирует в одномерном целочисленном массиве элементы, равные числу X
Описать функцию, которая дублирует в одномерном целочисленном массиве элементы, равные числу X....

В одномерном массиве,состоящем из n вещественных чисел,вычислить сумму модулей эллементов массива, расположенных после первого отрицательного элемента
В одномерном массиве,состоящем из n вещественных чисел,вычислить сумму модулей эллементов массива,...


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

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