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

Переписать код с использованием функций - C++

Восстановить пароль Регистрация
 
Pro100NoObik
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 12
20.03.2014, 03:40     Переписать код с использованием функций #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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
char bufRus[256];
char *Rus(const char *text)
{
    CharToOem(text,bufRus);
    return bufRus;
}
 
int main ()
{
    const int n=5; 
    int a[n][n], i,j,  sum=0, col=0;
    for(i=0; i<n; i++)
    for(j=0; j<n; j++)
        a[i][j]=rand()%5+1;
        cout<<Rus("Рандомная матрица:")<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<a[i][j]<<" ";
            cout<<endl;
    }
    bool fl;
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
        {
                fl=true;
                if(i>0 && a[i-1][j]<=a[i][j])
                        fl=false;
                if(j>0 && a[i][j-1]<=a[i][j])
                        fl=false;
                if(i<n-1 && a[i+1][j]<=a[i][j])
                        fl=false;
                if(j<n-1 && a[i][j+1]<=a[i][j])
                        fl=false;
                if(i>0 && j>0 && a[i-1][j-1]<=a[i][j])
                        fl=false;
                if(i>0 && j<n-1 && a[i-1][j+1]<=a[i][j])
                        fl=false;
                if(i<n-1 && j>0 && a[i+1][j-1]<=a[i][j])
                        fl=false;
                if(i<n-1 && j<n-1 && a[i+1][j+1]<=a[i][j])
                        fl=false;
                if(fl)
                        col++;
                if(j>(n-1-i))
                        sum+=abs(a[i][j]);
        }
    cout<<Rus("Количество локальных минимумов: ")<<col<<endl;
    cout<<Rus("Сумма модулей элементов над главной диагональю: ")<<sum<<endl;
  
    return 0; 
}
Добавлено через 2 часа 25 минут
я попытался, но он компилятор только выводит массив, а локальный минимум и сумма стоит 10
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
char bufRus[256];
char *Rus(const char *text)
{
    CharToOem(text,bufRus);
    return bufRus;
}
const int n=10,m=10;
int i=0,j=0;
void array(int(*a)[m],int n);
void locmin(int(*a)[m],int n);
void summod(int(*a)[m],int n);
 
void array(int(*a)[m],int n)
{
    for(i=0; i<n; i++)
{
    for(j=0; j<n; j++)
{
        a[i][j]=rand()%10+1;
}
}
    
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<a[i][j]<<" ";
            cout<<endl;
    }
 
};
void locmin(int(*a)[m],int n)
{
    int col=0;
    bool fl;
    for(i=0; i<n; i++)
    for(j=0; j<n; j++)
        {
                fl=true;
                if(i>0 && a[i-1][j]<=a[i][j])
                        fl=false;
                if(j>0 && a[i][j-1]<=a[i][j])
                        fl=false;
                if(i<n-1 && a[i+1][j]<=a[i][j])
                        fl=false;
                if(j<n-1 && a[i][j+1]<=a[i][j])
                        fl=false;
                if(i>0 && j>0 && a[i-1][j-1]<=a[i][j])
                        fl=false;
                if(i>0 && j<n-1 && a[i-1][j+1]<=a[i][j])
                        fl=false;
                if(i<n-1 && j>0 && a[i+1][j-1]<=a[i][j])
                        fl=false;
                if(i<n-1 && j<n-1 && a[i+1][j+1]<=a[i][j])
                        fl=false;
                if(fl)
                        col++;
}
};
void summod(int(*a)[m],int n)
{
 
    int sum=0;
    if(j>(n-1-i))
    sum+=abs(a[i][j]);
};
void main()
{   
    int(*a)[m]=new int [n][m];
    cout<<Rus("Рандомная матрица:")<<endl;
    array(a,n);
    locmin(a,n);
        cout<<Rus("Локальный минимум: ");
    cout<<(a,n);
    cout<<endl;
    summod(a,n);
    cout<<Rus("Сумма: ");
    cout<<(a,n);
    cout<<endl;
    
     
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
contedevel
 Аватар для contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590
20.03.2014, 04:50     Переписать код с использованием функций #2
Код не читал, ибо лень... Вы случайно не пытаетесь константу изменитьҘ?
Pro100NoObik
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 12
20.03.2014, 10:52  [ТС]     Переписать код с использованием функций #3
нет, не пытаюсь. просто до меня туго эти функции доходят)
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,912
20.03.2014, 10:56     Переписать код с использованием функций #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Закомментируйте все функции кроме одной и проверьте.Когда будет работать добавьте следующую.
Yandex
Объявления
20.03.2014, 10:56     Переписать код с использованием функций
Ответ Создать тему
Опции темы

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