С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 6
1

Написать программу, в которой создается двухмерный массив, значения вводятся с клавиатуры,потом значения умножаются по строкам - access violation

22.06.2013, 17:19. Показов 1201. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Задание написать программу в которой создается 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
#include <stdio.h>
#include <conio.h>
int main()
{clrscr();
int mas[10];
int m,n,i;
puts("Введите конфигурацию массива");
scanf("%d %d",&m,&n);
if((m*n)>30){puts("Кол-во эл-тов должно быть меньше 30-и");getch();return -1;}
 //По условию задачи должно быть до 30-и эл-тов
int **ptr=new int*[m];
if(ptr==NULL){puts("ERROR");return -1;};
for(i=0;i<m;i++)
{ptr[i]=new int[n];
if(ptr[i]=NULL){puts("ERROR");return -1;};
puts("\n Введите числа ");
for(i=0;i<m;i++)
{mas[i]=1;
 for(int j=0;j<n;j++)
 {scanf("%d",&ptr[i][j]);
  mas[i]=mas[i]*ptr[i][j];
 }
}
}
for(i=0;i<m;i++)
{printf("%d",mas[i]);
 
for(i=0;i<m;i++)
{delete []ptr[i];
}
delete []ptr;
}
getch(); }
Вот скрин ошибки:
Написать программу, в которой создается двухмерный массив, значения вводятся с клавиатуры,потом значения умножаются по строкам - access violation


Подскажите пожалуйста что сделал неправильно,а то сам ошибку никак не найду.(Понимаю что программа написана не грамотно).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2013, 17:19
Ответы с готовыми решениями:

Написать программу, в которой вводятся значения двух временных промежутков в часах
Помогите написать программу, в которой вводятся значения двух временных промежутков в часах....

Написать программу позволяющую вычислять выражение. Значения верхних индексов вводятся с клавиатуры.
Написать программу позволяющую вычислять Значения верхних индексов вводятся с клавиатуры.

Написать программу, создающую одномерный массив из 15 элементов. Значения членов массива вводятся при выполнен
Написать программу, создающую одномерный массив из 15 элементов. Значения членов массива вводятся...

Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам
Пожалуйста, очень надо. Написать программу по обработке динамических массивов. Размеры массивов...

4
39 / 39 / 24
Регистрация: 13.05.2010
Сообщений: 282
Записей в блоге: 1
22.06.2013, 17:28 2
Цитата Сообщение от B3op Посмотреть сообщение
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 <stdio.h>
#include <conio.h>
int main()
{clrscr();
int mas[10];
int m,n,i;
puts("Введите конфигурацию массива");
scanf("%d %d",&m,&n);
if((m*n)>30){puts("Кол-во эл-тов должно быть меньше 30-и");getch();return -1;}
 //По условию задачи должно быть до 30-и эл-тов
int **ptr=new int*[m];
if(ptr==NULL){puts("ERROR");return -1;};
for(i=0;i<m;i++)
{ptr[i]=new int[n];
if(ptr[i]=NULL){puts("ERROR");return -1;};
puts("\n Введите числа ");
for(i=0;i<m;i++)
{mas[i]=1;
 for(int j=0;j<n;j++)
 {scanf("%d",&ptr[i][j]);
  mas[i]=mas[i]*ptr[i][j];
 }
}
}
for(i=0;i<m;i++)
{printf("%d",mas[i]);
 
for(i=0;i<m;i++)
{delete []ptr[i];
}
delete []ptr;
}
getch(); }
В 15 строке стоит знак присваивания, а должен быть знак сравнения.
0
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 6
22.06.2013, 17:57  [ТС] 3
Спасибо большое,я и не заметил что пропустил "=".
Исправил,теперь появилась новая ошибка,уже при выводе данных массива результатов.
Написать программу, в которой создается двухмерный массив, значения вводятся с клавиатуры,потом значения умножаются по строкам - access violation

При этом если ввожу кол-во строк =1 то все работает без ошибок, при кол-ве строк большем чем 1,выводит результат от умножения первой строки,и сразу ошибка.Может я еще что-то пропустил?Или теперь ошибка в неправильном коде?
0
39 / 39 / 24
Регистрация: 13.05.2010
Сообщений: 282
Записей в блоге: 1
22.06.2013, 18:18 4
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int mas[10];
    int m,n,i;
    
    puts("Введите конфигурацию массива");
    scanf("%d %d",&m,&n);
    
    if ((m*n) > 30)
    {
        puts("Кол-во эл-тов должно быть меньше 30-и");
        getch();
        return -1;
    }
    
    int **ptr=new int*[m];
    if (ptr == NULL)
    {
        puts("ERROR");
        return -1;
    }
 
    for(i = 0; i < m;i++)
    {
        ptr[i] = new int[n];
        if (ptr[i] == NULL)
        {
            puts("ERROR");
            return -1;
        }
    }
 
    puts("\n Введите числа ");
    for(i = 0; i < m; i++)
    {
        mas[i] = 1;
        for(int j = 0;j < n; j++)
        {
            scanf("%d", &ptr[i][j]);
            mas[i] = mas[i] * ptr[i][j];
        }
    }
    
 
    for(i = 0;i < m; i++)
        printf("%d", mas[i]);
 
    for(i = 0;i < m;i++)
        delete []ptr[i];
    
        delete []ptr;
 
    getch(); 
}
0
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 6
23.06.2013, 12:21  [ТС] 5
Спасибо огромное за помощь.
0
23.06.2013, 12:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2013, 12:21
Помогаю со студенческими работами здесь

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

Составить программу, в которой вводятся 4 значения посчитать их сумму
Требуется помощь и объяснения Составить программу, в которой вводятся 4 значения посчитать их...

Массив вводятся значения все с клавиатуры
Создал прогу для создания массива на linuks все работало запускаю через windows не работает! В че...

Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по четным строкам. .(максимальная размерн
4. Написать функцию, которая вычисляет сопротивление цепи, состоящей из двух резисторов....

Составить программу, в которой вводятся значения двух временных промежутков в часах
Z=(√m−√n)/ m Текст: Составить программу, в которой вводятся значения двух временных промежутков в...

Написать программу, в которой создается двумерный динамический массив
Кто в курсе, как решить задачу на С++? Написать программу, в которой создается двумерный...


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

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