Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nicklan
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 4
#1

Вопрос о вводе массивa - C++

12.10.2010, 00:31. Просмотров 345. Ответов 8
Метки нет (Все метки)

Помогите реализовать эту задачу, которая вводит c клавиатуры двумерный массив неотрицательных целых чисел, находит минимум из максимальных элементов каждой строки и выводит на экран этот минимум, все максимальные элементы строк, их местоположение в первоначальном массиве и число попыток ввести отрицательный элемент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int main()
{setlocale(0,"Rus");
int i,m,n,j,b,c;
cout<<"Введите размерность массива.\nКоличество строк: ";
cin >> m;
cout<<"Количество столбцов: ";
cin>> n;
double a[m][n]; [B]//Немогу объявить массив, всегда пишет ошибку
[/B]
_getch();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2010, 00:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос о вводе массивa (C++):

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл? - C++
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt; &quot;Hello&quot; &lt;&lt; endl; } ...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал - C++
Составить программу, которая при вводе символа с клавиатуры выво-дит &quot;латинская буква&quot; при вводе латинской буквы и &quot;не латинская бук-ва&quot;...

Вопрос по массивав, "институтский" вопрос. - C++
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...

Зацикливается при вводе - C++
Admin.h: #include&lt;string&gt; using namespace std; class Admin { string Login;//Логин администратора string...

Ошибка при вводе - C++
мне нужно записать числа с файла в список , подскажите что не так выводит последнее лишнее число не пойму откуда оно берется #include...

Ошибка на вводе данных - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;ctype.h&gt; /* * В последовательности введенных символов...

8
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
12.10.2010, 00:34 #2
C++
1
2
3
double a=new double*[m];
for(int i=0;i<m;i++)
double a[i]=new double[n];
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
12.10.2010, 00:37 #3
Так массивы объявлять нельзя. Компилятор должен знать размер массива ещё на стадии компиляции. Используйте динамическое выделение памяти. Вот небольшой примерчик:

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 <cstdlib>
 
int main()
{
    int n, m;
 
    std::cin >> n;
    std::cin >> m;
 
    double **a;
 
    a = new double *[n];
 
    for (int i = 0; i < n; i++)
        a[i] = new double [m];
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            a[i][j] = i + j;
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            std::cout << a[i][j] << "  ";
 
        std::cout << std::endl;
    }
 
    for (int i = 0; i < n; i++)
        delete [] a[i];
 
    delete [] a;
 
    std::cout << std::endl;
    system("pause");
    return 0;
}
1
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
12.10.2010, 00:40 #4
необходимо использовать динамическое выделение памяти, объявлять размерность можно и так как пишете вы, но n,m должны быть объявлены как const int, но константу нужно инициализировать при объявлении.
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 00:40 #5
m,n - должны быть константы(если статика). Для динамики вот пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int **arr;
...
arr = new int*[m];
for(i=0; i<m; i++)
     {
         arr[i]= new int[n];
             for(j=0; j<n; j++)
           {
               arr[i][j]=rand()%9-1;// как пример заполнения случайными числами 
           }
             }
...      
delete [] arr;
1
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
12.10.2010, 00:42 #6
Цитата Сообщение от MILAN Посмотреть сообщение
delete [] arr;
C++
1
2
3
for(int i=0;i<m;i++)
delete [i]arr;
delete []arr;
1
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 00:43 #7
Crudelis, спасибо, забыл что массив двумерный!!!
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
12.10.2010, 00:47 #8
Crudelis, Я конечно все понимаю.
Но зачем такое воротить?
C++
1
delete [i]arr;
Дабы народ голову ломал или каждый должен знать что это эквивалентно
C++
1
delete arr[i];
?
+ все же у нас массив.
C++
1
delete[] arr[i];
1
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
12.10.2010, 01:46 #9
Lavroff, мда..... точно спасть пора.ю вторую ночь не сплю такое чето вылазит запутанно не правильное
0
12.10.2010, 01:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2010, 01:46
Привет! Вот еще темы с ответами:

Ошибка при вводе дерева - C++
В заданном непустом бинарном дереве найти длину (число ветвей) пути от корня до ближайшей вершины со значением, равным заданному....

Ошибка при вводе данных - C++
Вот прогамма. Она просит ввести Ваше име, возраст и пол. Первые два считывает, а с последним прблеммы... Не ждёт ввод данных, и пускает...

Определение ошибок при вводе - C++
void enter_point(vector&lt;Point&gt; &amp;v) { double x, y; while(true) { cout &lt;&lt; &quot;Enter x and y: &quot;; cin &gt;&gt; x &gt;&gt; y; if(cin)...

Распознавание цифр при вводе - C++
Здравствуйте, помогите пожалуйста решить задачу. Нужно спрашивать у пользователя числа до тех пор, пока он не введет букву e. При...


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

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

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