Форум программистов, компьютерный форум CyberForum.ru

Найти элементы матрицы, меньшие среднего арифметического - C++

Восстановить пароль Регистрация
 
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 13:06     Найти элементы матрицы, меньшие среднего арифметического #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
28
29
30
31
32
33
34
35
36
37
38
39
//* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
//* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы).
#include <iostream> 
# include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int k, n, m;
    int *a;
    double average = 0;
    cout <<"Введите размерность k:" << endl;
    cin >> k;
 
    cout <<"Введите количество строк n:"<<endl;
    cin >> n;
 
    cout <<"Введите количество столбцов m:"<< endl;
    cin >> m;
    a = new int [n*m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j<m; j++)
        {
            cout <<"a[" << i << j << "]=";
            cin >> *(a+i*m+j);
        average += *(a+i*m+j);}
    cout <<"Среднее арифметическое = "<< average/k;
    for (int i; i<n*m; i++){
    if (*(a+i) < average)
    {
        cout <<"Элементы меньшие среднего арифметического: "<< *(a+i);
    }
    }
    delete [] a;
    system ("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 13:06     Найти элементы матрицы, меньшие среднего арифметического
Посмотрите здесь:

C++ Вывести массив, предварительно удалив элементы меньшие среднего арифметического
C++ Сформировать другой массив, в который поместить сначала числа меньшие среднего арифметического значения этого массива, затем – большие.
Дана матрица A(N,M). Найти колличество элементов этой матрицы , больше среднего арифметического всех её элементов C++
C++ Матрицы. Найти элементы, меньшие среднего арифметического
C++ Матрицы. Необходимо найти значение среднего арифметического строк матрицы, исключая нулевые, в случае, если строка имеет отрицательный элемент(ы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 13:12     Найти элементы матрицы, меньшие среднего арифметического #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
34
35
36
37
38
39
//* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
 //* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы).
 #include <iostream> 
 # include <windows.h>
 
 using namespace std;
 
 int main()
 {
 setlocale(LC_CTYPE, "Russian");
 int k, n, m;
 int *a;
 double average = 0;
 cout <<"Введите размерность k:" << endl;
 cin >> k;
 
 cout <<"Введите количество строк n:"<<endl;
 cin >> n;
 
 cout <<"Введите количество столбцов m:"<< endl;
 cin >> m;
 a = new int [n*m];
 for (int i = 0; i < n; i++)
 for (int j = 0; j<m; j++)
 {
 cout <<"a[" << i << j << "]=";
 cin >> *(a+i*m+j);
 average += *(a+i*m+j);}
 cout <<"Среднее арифметическое = "<< average/k;
 for (int i=0; i<n*m; i++){
 if (*(a+i) < average)
 {
 cout <<"Элементы меньшие среднего арифметического: "<< *(a+i);
 }
 }
 delete [] a;
 system ("pause");
 return 0;
 }
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 13:37  [ТС]     Найти элементы матрицы, меньшие среднего арифметического #3
но там же выводит неправильное наименьшее среднее арифметическое((
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 13:59     Найти элементы матрицы, меньшие среднего арифметического #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
//* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
 //* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы).
 #include <iostream> 
 # include <windows.h>
 
 using namespace std;
 
 int main()
 {
 setlocale(LC_CTYPE, "Russian");
 int k, n, m;
 int *a;
 double average = 0;
 //cout <<"Введите размерность k:" << endl;
 //cin >> k;
 
 cout <<"Введите количество строк n:"<<endl;
 cin >> n;
 
 cout <<"Введите количество столбцов m:"<< endl;
 cin >> m;
 a = new int [n*m];
 for (int i = 0; i < n; i++)
 for (int j = 0; j<m; j++)
 {
 cout <<"a[" << i << j << "]=";
 cin >> *(a+i*m+j);
 average += *(a+i*m+j);}
 cout <<"Среднее арифметическое = "<< average/n/m<<endl;
 double average2=average/n/m;
 for (int i = 0; i < n; i++)
 for (int j = 0; j<m; j++){
     if((*(a+i*m+j))<average2)
         cout <<"Элементы меньшие среднего арифметического: "<<*(a+i*m+j)<<endl;
 
 }
 delete [] a;
 system ("pause");
 return 0;
 }
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 14:27  [ТС]     Найти элементы матрицы, меньшие среднего арифметического #5
я вот тоже так же думала написать, но там же условие есть: при нахождении наименьшего разрешается только один оператор цикла, кроме цикла ввода((
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 14:32     Найти элементы матрицы, меньшие среднего арифметического #6
Цитата Сообщение от wsa Посмотреть сообщение
я вот тоже так же думала написать, но там же условие есть: при нахождении наименьшего разрешается только один оператор цикла, кроме цикла ввода((
А такой вариант?
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
//* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
 //* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы).
 #include <iostream> 
 # include <windows.h>
 
 using namespace std;
 
 int main()
 {
 setlocale(LC_CTYPE, "Russian");
 int k, n, m;
 int *a;
 double average = 0;
 //cout <<"Введите размерность k:" << endl;
 //cin >> k;
 
 cout <<"Введите количество строк n:"<<endl;
 cin >> n;
 
 cout <<"Введите количество столбцов m:"<< endl;
 cin >> m;
 a = new int [n*m];
 for (int i = 0; i < n; i++)
 for (int j = 0; j<m; j++)
 {
 cout <<"a[" << i << j << "]=";
 cin >> *(a+i*m+j);
 average += *(a+i*m+j);}
 cout <<"Среднее арифметическое = "<< average/n/m<<endl;
 double average2=average/n/m;
 for (int i = 0; i < n*m; i++)
{
     if((*(a+i))<average2)
         cout <<"Элементы меньшие среднего арифметического: "<<*(a+i)<<endl;
 
 }
 delete [] a;
 system ("pause");
 return 0;
 }
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6160 / 2889 / 282
Регистрация: 04.12.2011
Сообщений: 7,689
Записей в блоге: 3
22.09.2013, 15:33     Найти элементы матрицы, меньшие среднего арифметического #7
Как вариант:
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 <windows.h>
using namespace std;
int main()
 {
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    int k_str , m_stlb ;
char *first_str ="Введите количество ";
char *second_str_str = "строк ";
char *second_str_stlb = "столбцов ";
    cout<<first_str<<second_str_str;
    cin>>k_str;
    cout<<first_str<<second_str_stlb;
    cin>>m_stlb;
int **matrix = new int*[k_str];
for (int i=0; i < k_str; ++i) matrix[i] = new int[m_stlb];
int sum=0;
for (int i=0; i < k_str; ++i)
for (int j=0; j < m_stlb; ++j) {
cout<<"Введите значение элемента "<<"["<<i<<"]["<<j<<"] ";
cin>>matrix[i][j];
sum+=matrix[i][j];
}
double total_size = k_str * m_stlb;
double average =  sum/total_size ;
cout<<"Среднее равно "<<average<<endl ;
int tmp_str=0;
int tmp_stlb=0;
cout<<"Меньше среднего, - следующие элементы"<<endl;
for (int i=0; i < total_size; ++i){
tmp_str=i/m_stlb;
tmp_stlb=i%m_stlb;
if((double)matrix[tmp_str][tmp_stlb] < average) cout<< "№ " << i << " индекс элемента " << "[" << tmp_str<< "]["<<tmp_stlb << "] "<<matrix[tmp_str][tmp_stlb]<<" "<< endl;
}
    cout<<endl;    
    system("pause");
    return 0;
}
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 19:55  [ТС]     Найти элементы матрицы, меньшие среднего арифметического #8
да так работает))) спасибо большое)) так не пробовала было
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6160 / 2889 / 282
Регистрация: 04.12.2011
Сообщений: 7,689
Записей в блоге: 3
22.09.2013, 22:33     Найти элементы матрицы, меньшие среднего арифметического #9
Я подумал что:
Цитата Сообщение от wsa Посмотреть сообщение
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
означает, что вводится матрица, то есть двумерный массив и представлять его внутри одномерным, это уже нарушение условия.
Если Вы посмотрите на последний цикл внимательно, то легко увидите как перейти от от полного размера и общего номера к индексам измерений. То есть сможете и цикл ввода элементов из двойного переделать в одинарный.
Хотя и в этом виде решение удовлетворяет условию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 22:37     Найти элементы матрицы, меньшие среднего арифметического
Еще ссылки по теме:

Поиск среднего арифметического и наибольшего элементов матрицы C++
C++ Упорядочить столбцы матрицы по убыванию среднего арифметического
В каждой строке матрицы найти количество элементов, меньших среднего арифметического элементов строки C++

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

Или воспользуйтесь поиском по форуму:
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 22:37  [ТС]     Найти элементы матрицы, меньшие среднего арифметического #10
нам преподаватель так попросил сделать, он знает про это) так что все в порядке) спасибо)
Yandex
Объявления
22.09.2013, 22:37     Найти элементы матрицы, меньшие среднего арифметического
Ответ Создать тему
Опции темы

Текущее время: 06:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru