Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
#1

Ошибка после компиляции и ввода

20.05.2013, 22:54. Просмотров 797. Ответов 21
Метки нет (Все метки)

Компилирую программу,ввожу переменные и выбивает "Unhandled exception at 0x00000001 in Lab 5 1.exe: 0xC0000005: Access violation reading location 0x00000001."

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 22:54
Ответы с готовыми решениями:

Ошибка компиляции ввода-вывод файла
#include <iostream> int main() { char Stext="Hello world"; char...

Ошибка компиляции модульной программы ввода вывода
Вобщем программа с консольным меню - - Генерация массива; - Запись массива;...

Ошибка после компиляции
После запуска программы, первый пункт не работает и выдает ошибку ...

Ошибка с библиотекой после компиляции
Скомпилировал библиотеку freetype-gl++.lib , но при использовании примера,...

Ошибка компиляции после объявления класса
Что не так в этом коде? Писал программку, не хочет запускаться. Упростил до...

21
Croessmah
++Ͻ
14359 / 8141 / 1532
Регистрация: 27.09.2012
Сообщений: 20,071
Записей в блоге: 3
Завершенные тесты: 1
20.05.2013, 22:58 #2
код?


P.S. не все телепаты
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
20.05.2013, 23:03  [ТС] #3
Я только начал писать программу.Решил откомпилировать начало и выбило ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    int B[13];
     for(int i=0;i<14;i++)
     {cout<<"Input B["<<i<<"]\n";
     cin>>B[i];}
     system ("cls");
 
getch();
return 0;
}
0
Croessmah
++Ͻ
14359 / 8141 / 1532
Регистрация: 27.09.2012
Сообщений: 20,071
Записей в блоге: 3
Завершенные тесты: 1
20.05.2013, 23:06 #4
C++
1
i<14
поменяйте на
C++
1
i<13
Добавлено через 30 секунд
индексация в массив [0;size)
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
20.05.2013, 23:41  [ТС] #5
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
i<14
поменяйте на
C++
1
i<13
Добавлено через 30 секунд
индексация в массив [0;size)
Я думал,что оно будет обращаться и к 14 элементу,если я бы написал i<=14.
0
henecs
17 / 17 / 11
Регистрация: 19.05.2013
Сообщений: 135
20.05.2013, 23:50 #6
если размер массива 1 то обращаться надо к 0 элементу массива а не к 1
0
Croessmah
++Ͻ
14359 / 8141 / 1532
Регистрация: 27.09.2012
Сообщений: 20,071
Записей в блоге: 3
Завершенные тесты: 1
20.05.2013, 23:55 #7
Цитата Сообщение от triadec_96 Посмотреть сообщение
Я думал,что оно будет обращаться и к 14 элементу
будет, но такого элемента нет. Индексы в массиве начинаются с нуля.
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
21.05.2013, 00:37  [ТС] #8
Цитата Сообщение от Croessmah Посмотреть сообщение
будет, но такого элемента нет. Индексы в массиве начинаются с нуля.
Получается i<14 и i<=14 одно и то самое и наличие знака "=" не влияет на результат программы?
0
Croessmah
++Ͻ
14359 / 8141 / 1532
Регистрация: 27.09.2012
Сообщений: 20,071
Записей в блоге: 3
Завершенные тесты: 1
21.05.2013, 07:47 #9
Цитата Сообщение от triadec_96 Посмотреть сообщение
Получается i<14 и i<=14 одно и то самое и наличие знака "=" не влияет на результат программы?
Почему это?
У Вас последний элемент в массиве B[12]
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
21.05.2013, 22:08  [ТС] #10
Цитата Сообщение от Croessmah Посмотреть сообщение
У Вас последний элемент в массиве B[12]
У меня в задании написано массив с 14 элементов.
Почему 12,если
C++
1
int B[13]
?
0
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
21.05.2013, 22:19 #11
Потому что массив начинается с 0!
0 1 2 3 4 5 6 7 8 9 10 11 12 13
А теперь считайте кол-во элементов
1
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 22:21 #12
triadec_96, в объявлении массива указывается количество элементов. А при доступе к элементам задается индекс, который начинается с нуля.
0
Miwa123
37 / 37 / 22
Регистрация: 16.04.2013
Сообщений: 319
Записей в блоге: 1
21.05.2013, 22:28 #13
Цитата Сообщение от triadec_96 Посмотреть сообщение
У меня в задании написано массив с 14 элементов.
Почему 12,если
C++
1
int B[13]
?
Тебе нужно создать массив из 14 элементов. при объявлении массива тебе нужно писать int array[14]. 14 - действительное количество элементов. а непосредственно при работе с этим массив обращаться к элементам нужно с 0-13.
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
21.05.2013, 22:32  [ТС] #14
У меня здесь зацикливание?
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 <conio.h>
using namespace std;
int main()
{
    int B[14],max,id;
     for(int i=0;i<13;i++)
     {cout<<"Input B["<<i<<"]\n";
     cin>>B[i];}
 
     system ("cls");
 
      max=B[0];
     for(int i=1;i<14;i++)
       for(int j=1;j<14;i++)
           if(B[j]>B[j-1]) 
           {max=B[j];
            B[j]=B[j-1];
            B[j-1]=max;}
 
 
      for(int i=0;i<13;i++)
     cout<<B[i]<<" ";
getch();
return 0;
}
0
schdub
Эксперт С++
3023 / 1368 / 418
Регистрация: 19.01.2009
Сообщений: 3,637
Завершенные тесты: 1
21.05.2013, 22:34 #15
из того что бросается в глаза:
строка 15
Цитата Сообщение от triadec_96 Посмотреть сообщение
C
1
for(int j=1;j<14;i++)
возможно должно быть
C
1
for(int j=1;j<14;j++)
1
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 22:42 #16
triadec_96, заведите константу:
C++
1
const int size = 14;
и используйте ее и при объявлении массива и во всех циклах.
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
21.05.2013, 22:56  [ТС] #17
Цитата Сообщение от schdub Посмотреть сообщение
возможно должно быть
Код C
1
for(int j=1;j<14;j++)
А что у меня с первыми двумя элементами?
Вроде нормально отсортированный массив выводит,но там 12 элементов и перед ними чепуха какая-то.
0
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 23:05 #18
Цитата Сообщение от triadec_96 Посмотреть сообщение
А что у меня с первыми двумя элементами?
Говорю же Вам, заведите константу. У Вас при вводе/выводе меньше на 1 элемент используется.
0
triadec_96
12 / 12 / 8
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
21.05.2013, 23:39  [ТС] #19
Цитата Сообщение от Tulosba Посмотреть сообщение
Говорю же Вам, заведите константу. У Вас при вводе/выводе меньше на 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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    const int size = 14;
    int B[14],max,id;
     for(int i=0;i<13;i++)
     {cout<<"Input B["<<i<<"]\n";
     cin>>B[i];}
 
     system ("cls");
 
      max=B[0];
     for(int i=1;i<14;i++)
       for(int j=1;j<14;j++)
           if(B[j]>B[j-1]) 
           {max=B[j];
            B[j]=B[j-1];
            B[j-1]=max;}
 
 
      for(int i=0;i<14;i++)
     cout<<B[i]<<" ";
getch();
return 0;
}
0
schdub
Эксперт С++
3023 / 1368 / 418
Регистрация: 19.01.2009
Сообщений: 3,637
Завершенные тесты: 1
21.05.2013, 23:48 #20
triadec_96, какой из алгоритмов сортировки Вы пытаетесь закодировать? Вот пузырек:
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>
 
void bubble_sort(int * items, int count) {
    int a, b, t;
    for (a = 1; a < count; ++a) {
        for (b = count - 1; b >= a; --b) {
            if (items[b - 1] > items[b]) {
                t = items[b - 1];
                items[b - 1] = items[b];
                items[b] = t;
            }
        }
    }
}
 
int main(int argc, char **argv) {
    // input array
    int B[14];
    int count = sizeof(B) / sizeof(*B);
    for(int i = 0; i < count; ++i) {
        std::cout << "B["<<i<<"]=";
        std::cin  >> B[i];
    }
    
    // sort array
    bubble_sort(B, count);
    
    // print array
    for(int i = 0; i < count; ++i) {
        std::cout<<B[i]<<" ";
    }
    std::cout << std::endl;
}
0
21.05.2013, 23:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 23:48

Ошибка компиляции после удаления файла в проекте в NetBeans C++
После удаления какого либо файла из проекта из окна &quot;файлы&quot; среды NetBeans...

Ошибка при компиляции: требует точку с запятой после скобки
Вот код: #include &lt;iostream&gt; // Для возможности использования cin / cout...

Bind (Soket) - ошибка при компиляции после подключения boost
В общем подключил в проэкт #include &lt;boost/regex.hpp&gt; теперь при...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru