Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Alexandra555
0 / 0 / 2
Регистрация: 17.05.2011
Сообщений: 33
#1

Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов - C++

28.05.2011, 14:47. Просмотров 755. Ответов 7
Метки нет (Все метки)

Помогите с решением!!

Что надо вставить вместо ???, чтобы все работало?

Даны вещественные массивы A[3][5], V[3][5]. Для каждого
массива опpеделить номеp столбца с наибольшим количеством
положительных элементов.

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
#include<iostream.h>
#include<conio.h>
 
void inputmas(int[3][5], char);
int schet(int[3][5]);
void outrez(int[3][5], char, int);
 
void main()
{
int a[3][5], v[3][5], num_stolbec_a, num_stolbec_v;
inputmas(a, 'a');
inputmas(v, 'v');
num_stolbec_a=schet(a);
num_stolbec_v=schet(v);
outrez(a, 'a', num_schet_a);
outrez(v, 'v', num_schet_v);
}
 
//определение функции ввода массива input()
void inputmas(int x[3][5], char name)
 {
 int i,j;
 cout<<"Вводим массив"<<name<<endl;
 for(i=0; i<3; i++)
 for(j=0; j<5; j++)
 {
 cout<<"Введите элемент массива"<<name<<"["<<i<<"]["<<j<<"]=";
 cin<< x[i][j];
 }
 }
 
 //определение расчетной функции schet()
 
int schet(int m[3][5])
 {
 
 ???
 
 }
 
//определение функции вывода массива outrez()
void outrez(int x[3][5], char name, int num_stolbca_)
 {
 int i,j;
 cout<<"Исходный массив"<<name<<":"<<endl;
 for(i=0; i<3; i++)
 for(j=0; j<5; j++)
 cout<<setw(6)<<x[i][j];
 cout<<"Наибольшее кол-во положит.эл-тов"<<name<<"содержится в"<<num_stolbca_<<"столбце\n";
 }

http://www.cyberforum.ru/cpp-beginners/thread822073.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 14:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов (C++):

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

Для каждого столбца двумерного массива подсчитать сумму четных положительных элементов
III. Дан массив размером n×n, элементы которого целые числа. Замечание. Для...

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

Для каждого массива опpеделить сpеднее аpифметическое наибольшего и наименьшего значений массива
Даны вещественные массивы D, A. Для каждого массива опpеделить сpеднее...

Вычислить суммы положительных элементов для каждого столбца
Дан двумерный массив размером m*n. Заполнить его с клавиатуры. Определить...

7
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.05.2011, 15:52 #2
Попробуй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int max=0, tmp=0, number=0;
for (int j=0; j<5; j++)
{
    for (int i=0; i<3; i++)
        if (m[i][j]>0)
            tmp++;
    if (tmp>max)
    {
        max=tmp;
        number=j+1;
    }
    tmp=0;
}
return number;
1
Alexandra555
0 / 0 / 2
Регистрация: 17.05.2011
Сообщений: 33
28.05.2011, 17:57  [ТС] #3
Цитата Сообщение от soon Посмотреть сообщение
Попробуй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int max=0, tmp=0, number=0;
for (int j=0; j<5; j++)
{
    for (int i=0; i<3; i++)
        if (m[i][j]>0)
            tmp++;
    if (tmp>max)
    {
        max=tmp;
        number=j+1;
    }
    tmp=0;
}
return number;
у меня так что-то не идет что делать?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.05.2011, 19:44 #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
58
59
60
61
62
#include <iostream>
#include <iomanip>
 
using namespace std;
 
void inputmas(int[3][5], char);
int schet(int[3][5]);
void outrez(int[3][5], char, int);
 
int main()
{
     setlocale(LC_ALL, "Russian");
     int a[3][5], v[3][5];
     inputmas(a, 'a');
     inputmas(v, 'v');
     outrez(a, 'a', schet(a));
     outrez(v, 'v', schet(v));
     system("pause");
}
 
void inputmas(int x[3][5], char name)//определение функции ввода массива input()
{
     int i,j;
     cout<<"Вводим массив "<<name<<endl;
     for(i=0; i<3; i++)
          for(j=0; j<5; j++)
          {
               cout<<"Введите элемент массива"<<name<<"["<<i<<"]["<<j<<"]="; //Выводить каждый раз эту строку не очень удобно, особенно если вводить в массив не по одному элементу, а сразу все
               cin >> x[i][j];
          }
}
 
int schet(int m[3][5])//Определение расчетной функции schet()
{
     int max=0, tmp=0, number=0;
     for (int j=0; j<5; j++)
     {
          for (int i=0; i<3; i++)
               if (m[i][j]>0)
                    tmp++;
          if (tmp>max)
          {
               max=tmp;
               number=j+1;
          }
          tmp=0;
     }
     return number;
}
 
void outrez(int x[3][5], char name, int num_stolbca_)//Определение вывода массива outrez()
{
     int i,j;
     cout<<"Исходный массив "<<name<<":"<<endl;
     for(i=0; i<3; i++)
     {
          for(j=0; j<5; j++)
               cout << setw(6)<< x[i][j];
          cout << endl;
     }
     cout<<"Наибольшее кол-во положит. эл-тов "<<name<<" содержится в "<<num_stolbca_<<" столбце\n";
}
Добавлено через 15 минут
Во-первых, по стандарту языка такие заголовочные файлы, как iostream подключаются без ".h". Код, конечно, скомпилируется, но компилятор выдаст warning.
Во-вторых, главная функция в с++ именуется int main() а не void main().
В-третьих, т.к. функция schet() выдает результат в int, то вместо
num_stolbec_a=schet(a);
num_stolbec_v=schet(v);
outrez(a, 'a', schet(a));
outrez(v, 'v', schet(v));
целесообразнее будет просто
C++
1
2
outrez(a, 'a', schet(a));
     outrez(v, 'v', schet(v));
и переменные лишние можно не объявлять.
Ну вот, вроде все.
1
Alexandra555
0 / 0 / 2
Регистрация: 17.05.2011
Сообщений: 33
28.05.2011, 20:04  [ТС] #5
soon, а что такое tmp?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.05.2011, 20:10 #6
Alexandra555, tmp-количество положительных элементов в столбце.
А max-соответственно максимальное количество положительных элементов, среди уже проверенных столбцов
Стоит также отметить, что если столбцов с одинаковым кол-вом положительных элеметов несколько, то программа выводит номер первого столбца.
1
Alexandra555
0 / 0 / 2
Регистрация: 17.05.2011
Сообщений: 33
28.05.2011, 20:20  [ТС] #7
soon, Огромное Вам спасибо! Вы мне очень помогли!

Добавлено через 7 минут
а если в задачке дан вещественный массив, то что? надо int заменить на float ?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.05.2011, 20:58 #8
угу
и в функциях тоже
0
28.05.2011, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2011, 20:58
Привет! Вот еще темы с решениями:

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

Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов
Определить количество положительных элементов каждого столбца двумерного...

Для каждого столбца матрицы подсчитать сумму четных положительных элементов
2. Для каждого столбца подсчитать сумму четных положительных элементов и...

Вычислить разность между количеством отрицательных и количеством положительных элементов одномерного массива
Здравствуйте уважаемые форумчане. Возникли трудности при решении задачи. :wall:...


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

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

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