0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
1

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

22.09.2013, 13:06. Показов 1272. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как написать два цикла в одно, при выводе наименьшего среднего арифметического?

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;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2013, 13:06
Ответы с готовыми решениями:

Матрицы. Найти элементы, меньшие среднего арифметического
Вот задача, мне срочно нужна ваша помощь... С клавиатуры вводится размерность целочисленной...

Элементы меньшие среднего арифметического перенести в начало массива
Динамически выделить память под N элементов вещественного типа float. Разработать алгоритм и...

Вывести массив, предварительно удалив элементы меньшие среднего арифметического
Необходимо ввести массив вещественных чисел и вывести его, предварительно удалив элементы меньшие...

Найти элементы большие среднего арифметического и удалить их из множества
Cоздайте множество с элементами типа double, размером 15. Найти элементы большие среднего...

9
70 / 70 / 13
Регистрация: 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;
 }
1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 13:37  [ТС] 3
но там же выводит неправильное наименьшее среднее арифметическое((
0
70 / 70 / 13
Регистрация: 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;
 }
0
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 14:27  [ТС] 5
я вот тоже так же думала написать, но там же условие есть: при нахождении наименьшего разрешается только один оператор цикла, кроме цикла ввода((
0
70 / 70 / 13
Регистрация: 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;
 }
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
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;
}
1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 19:55  [ТС] 8
да так работает))) спасибо большое)) так не пробовала было
0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.09.2013, 22:33 9
Я подумал что:
Цитата Сообщение от wsa Посмотреть сообщение
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического.
означает, что вводится матрица, то есть двумерный массив и представлять его внутри одномерным, это уже нарушение условия.
Если Вы посмотрите на последний цикл внимательно, то легко увидите как перейти от от полного размера и общего номера к индексам измерений. То есть сможете и цикл ввода элементов из двойного переделать в одинарный.
Хотя и в этом виде решение удовлетворяет условию.
0
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
22.09.2013, 22:37  [ТС] 10
нам преподаватель так попросил сделать, он знает про это) так что все в порядке) спасибо)
0
22.09.2013, 22:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2013, 22:37
Помогаю со студенческими работами здесь

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

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

Найти значения тех элементов матрицы, которые больше среднего арифметического
Если среднее арифметическое матрицы А положительно, задать элементам С1, C2, ..., Сi; значения тех...

Сформировать другой массив, в который поместить сначала числа меньшие среднего арифметического значения этого массива, затем – большие.
Дан целочисленный массив, состоящий из 15 элементов. Сформировать другой массив, в который...


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

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

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