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

Не правильно работает! - C++

Восстановить пароль Регистрация
 
tolyan1995
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 35
24.11.2013, 18:54     Не правильно работает! #1
Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значе-нию всех ее элементов.
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
#include<iostream.h>
#include<math.h>
#include<time.h>
using namespace std;
 
int main()
{
int a[5][5];
srand(time(NULL));
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
a[i][j]=rand()%10;
cout<<a[i][j]<<" ";}cout<<endl;}
double sr=0;
int x,y;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
sr=sr+a[i][j];
}}
sr=sr/25;
cout<<"Srednee znachenie vsech elementov: "<<sr<<endl;
double b=sr;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(a[i][j]>sr) {if(a[i][j]-sr<b) b=a[i][j]-sr;x=i;y=j;}
else if(a[i][j]<sr) {if(sr-a[i][j]<b) b=sr-a[i][j];x=i;y=j;}
else {b=a[i][j];x=i;y=j;}
}}
cout<<"Stolbets: "<<x+1<<" stroka: "<<y+1<<endl;
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
24.11.2013, 19:34     Не правильно работает! #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
40
41
42
#include <iostream>
#include <ctime>
#include <iomanip>
#include <cmath>
 
const int m = 5;
const int n = 6;
 
int main()
{
    srand (time(NULL));
    int a[m][n];
    float sr = 0;
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            a[i][j] = rand()%20 + 1;
            std::cout <<std::setw(3) <<a[i][j] <<" ";
            sr+=a[i][j];
        }
        std::cout <<std::endl;
    }
    sr/=(m*n);
    std::cout <<"Srednee: " <<sr <<'\n';
    int tmpi,tmpj;
    float e = fabs(a[0][0] - sr);
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (fabs(a[i][j] - sr)<e)
            {
                tmpi = i + 1;
                tmpj = j + 1;
                e = fabs(a[i][j] - sr);
            }
        }
    }
    std::cout <<"[" <<tmpi <<"][" <<tmpj <<"]\n";
    return 0;
}
tolyan1995
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 35
24.11.2013, 21:13  [ТС]     Не правильно работает! #3
а можно сделать, чтобы был не рандом, а ввод с клавы?
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
24.11.2013, 21:24     Не правильно работает! #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
#include <iostream>
#include <iomanip>
#include <cmath>
 
const int m = 5;
const int n = 6;
 
int main()
{
    int a[m][n];
    float sr = 0;
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            std::cout <<"A[" <<i <<"][" <<j <<"] = ";
            std::cin >> a[i][j];
            sr+=a[i][j];
        }
        std::cout <<std::endl;
    }
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
            std::cout <<std::setw(3) <<a[i][j];
        std::cout <<'\n';
    }
    sr/=(m*n);
    std::cout <<"Srednee: " <<sr <<'\n';
    int tmpi,tmpj;
    float e = fabs(a[0][0] - sr);
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (fabs(a[i][j] - sr)<e)
            {
                tmpi = i + 1;
                tmpj = j + 1;
                e = fabs(a[i][j] - sr);
            }
        }
    }
    std::cout <<"[" <<tmpi <<"][" <<tmpj <<"]\n";
    return 0;
}
Yandex
Объявления
24.11.2013, 21:24     Не правильно работает!
Ответ Создать тему
Опции темы

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