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

Как применять функции? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
07.01.2011, 21:23     Как применять функции? #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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int main(void)
{
    const int  n=7;
    const int m=7;
    srand((unsigned)time(NULL));
    int i,j ;
    unsigned int  **a;
    a=new  unsigned int *[n];
    for(i=0;i<n;i++)
    {
        a[i]=new  unsigned int  [m];
    }
    printf("\n             massiv\n\n");
    for(i=0;i<n;i++)
    {
        for( j=0; j<m; j++)
        {
            if(i==j)
            {
                a[i][j]=(rand()%050)*2;
            }
            else
            {
                double pi = cos(-1);
                double ci=((double) rand() / RAND_MAX) * pi + 0;
                double cj=((double) rand() / RAND_MAX) * pi + 0;
                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
            }
                
            printf("%4d", a[i][j]);
        }
        printf("\n\n");
    }
    for(i=0; i<n; i++)
    {
       delete (a[i]);
    }
    delete  a;
    return 0;
    
 
}
вот тут мне надо сделать функцию программа работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    for(i=0;i<n;i++)
    {
        for( j=0; j<m; j++)
        {
            if(i==j)
            {
                a[i][j]=(rand()%050)*2;
            }
            else
            {
                double pi = cos(-1);
                double ci=((double) rand() / RAND_MAX) * pi + 0;
                double cj=((double) rand() / RAND_MAX) * pi + 0;
                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
            }
                
            printf("%4d", a[i][j]);
        }
        printf("\n\n");
    }
как мне вот это привратить в функцию чтоб работало.Только я на первом курсе и знания мои не очень кто может помогите обьясниите мне не умному попроще)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
07.01.2011, 21:28     Как применять функции? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void my_func(int** a, int n, int m)
for(i=0;i<n;i++)
    {
                for( j=0; j<m; j++)
        {
                        if(i==j)
                        {
                a[i][j]=(rand()%050)*2;
                        }
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
в маине:
C++
1
my_func(a,n,m);
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
07.01.2011, 23:16  [ТС]     Как применять функции? #3
я вот так попробывал
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void my_func(unsigned int** a, int n, int m);
 
int main(void)
{
        const int  n=7;
        const int m=7;
        srand((unsigned)time(NULL));
        int i,j ;
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [m];
        }
        printf("\n             massiv\n\n");
        my_func(a,n,m);
       for(i=0; i<n; i++)
        {
       delete (a[i]);
        }
        delete  a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n, int m)
{   
    int i,j;
    for(i=0;i<n;i++)
    {
                for( j=0; j<m; j++)
        {
                        if(i==j)
                        {
                         a[i][j]=(rand()%050)*2;
                        }
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
чёт не как там сам масив динамический там
C++
1
unsigned int **a а *\\другие через double\\*
програма работает но там 5 warningов они не мешают но с этим можно чтото сделать?
и спасибо за помощь
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
07.01.2011, 23:41     Как применять функции? #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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void my_func(unsigned int** a, int n, int m);
 
int main(void)
{
        const int  n=7;
        const int m=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [m];
        }
        printf("\n             massiv\n\n");
        my_func(a,n,m);
       for(int i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n, int m)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<m; j++)
        {
                        if(i==j)
                        {
                         a[i][j]=(rand()%050)*2;
                        }
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
а вот это мне вообще не совсем понятно
C++
1
a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 00:02  [ТС]     Как применять функции? #5
Числа по диогонали толжны быть чётными а остальные из диопазона
C++
1
    a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
где ci и cj случайние из диопазона 0 до пи это соs(-1)
а что такое побочная диоганаль? это та что с боку? И как сделать их нечётными эту побочную ? вот диогональ там i==j побочную как определить?
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 00:30     Как применять функции? #6
какая вообще диагональ, когда у вас матрица ПРЯМОУГОЛЬНАЯ. Диагональ определена только у матрицы размерном n*n.
побочная будет тогда
C++
1
if(i==n-j);
Добавлено через 1 минуту
у обе диагонали пересекаются, надо подумать, что у тебя будет в точке пересечения.

Добавлено через 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
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void my_func(unsigned int** a, int n);
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
       for(int i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j)
                        {
                         a[i][j]=(rand()%050)*2;
                        }
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
Добавлено через 9 минут
у меня компилятор выдавал предупреждение, что левое значение вашем диапозоне не используется. Проверил на следующем коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <iostream>
int main()
{
for(int i=0;i<10;i++)
{
double pi = cos(-1);
double ci=((double) rand() / RAND_MAX) * pi + 0;
double cj=((double) rand() / RAND_MAX) * pi + 0;
 std::cout << exp(-ci + cos(cj)) << std::endl; // смотрим так, потом меняем коммент с предыдущей строкой
// std::cout << (ci * ci - 3.5 * cj, exp(-ci + cos(cj))) << std::endl;  
}
}
srand() я не писал, так что числа особо рандомными не были, при каждом запуске программы одинаковые
Эксперементально убедился, что никакого диапазона нету эти строки эквивалентны:
C++
1
2
(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
exp(-ci + cos(cj))
вообще впервые вижу такую запись, поэтому стало интересно
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 00:38  [ТС]     Как применять функции? #7
А как же быть тогда? Вот такое задание я может не так обьяснил.
Миниатюры
Как применять функции?  
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 00:48     Как применять функции? #8
C++
1
 a[i][j]=max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
Добавлено через 7 минут
C++
1
if(i!=j && i==n-j) a[i][j]=(rand()%050)*2-1;
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 01:18  [ТС]     Как применять функции? #9
А вот max это что такое?
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 01:30     Как применять функции? #10
Цитата Сообщение от Steam.dll Посмотреть сообщение
А вот max это что такое?
возвращает большую из двух величин.
C++
1
2
3
4
#include <algorithm>
/*
*/
std::max(1,2);
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 01:38  [ТС]     Как применять функции? #11
я попробывал так вот сделать. почемуто по побочной как то не совсем правильно печатает
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
void my_funciy(unsigned int** a, int n, int m);
 
int main(void)
{
        const int  n=7;
        const int m=7;
        srand((unsigned)time(NULL));
        int i,j ;
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [m];
        }
        printf("\n             massiv\n\n");
        my_funciy(a,n,m);
        
       for(i=0; i<n; i++)
        {
       delete (a[i]);
        }
        delete  a;
        return 0;
        
 
}
 
void my_funciy(unsigned int** a, int n, int m)
{
    for(int i=0;i<n;i++)
    {
                for(int j=0; j<m; j++)
        {
                    if(i!=j && i==n-j)
                    {
        
                        a[i][j]=(rand()%050)*2-1;
                        
                    }
                    else
                    {
                        if(i==j)
                        {
                         a[i][j]=(rand()%050)*2;
                        }
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                        
                    }
                    
                    printf("%4d", a[i][j]);
        }
                printf("\n\n");
    }
}
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 01:54     Как применять функции? #12
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
       for(int i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
            else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
Добавлено через 39 секунд
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vx5@Dev:~/cpp$ ./a.out
 
             massiv
 
  16   2   2   2   1   2  49
 
   2  40   2   2   1  33   2
 
   2   1  24   1  23   1   2
 
   2   1   1  48   2   1   2
 
   1   2  37   2  14   1   1
 
   1  29   1   1   2   8   1
 
  39   1   2   1   2   2  30
Добавлено через 4 минуты
все правильно, у вас массив int, а рандомом мы делаем числа double , вот где косяк.
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 15:40  [ТС]     Как применять функции? #13
Спасибо огромное.

Добавлено через 13 часов 43 минуты
а вот как вычислить наименьшее значение из 3 столбов я всё через int делал там случайные числа только 2 и 1
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 16:07     Как применять функции? #14
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  for(int i=0;i<n;i++)
    {
      mins[i]=a[0][i]
      for(int j=1;j<n;j++)
    mins[i]=std::min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
    unsigned int *mins=find_mins(a,n);
    /*
      тут допишите вывод массива mins и его удаление из
      динамической памяти
     */
       for(int i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
Добавлено через 4 минуты
C++
1
find_mins(a,n);
возвращает указатель на массив минимальных элементов по столбцам
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 19:58  [ТС]     Как применять функции? #15
спасибо

Добавлено через 24 минуты
я вот ек разобралс дописать надо
C++
1
2
3
4
5
6
7
8
9
 for(i=0;i<n;i++)
        {
             mins[i]=a[0][i]
              for(int j=1;j<n;j++)
              {
                  mins[i]=a[j][i];
                  printf("%2d", mins[i]);
              }
        }
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 20:15     Как применять функции? #16
C++
1
2
3
4
5
6
7
8
9
10
for(i=0;i<n;i++)
                {
             mins[i]=a[0][i]
              for(int j=1;j<n;j++)
                          {
                  mins[i]=a[j][i];
                                  
                          }
             printf("%2d", mins[i]);
                }
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 20:48  [ТС]     Как применять функции? #17
Ошибки вылетают и как удалить его из динамической памети
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  for(int i=0;i<n;i++)
    {
      mins[i]=a[0][i]
      for(int j=1;j<n;j++)
        mins[i]=std::min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
        unsigned int *mins=find_mins(a,n);
        for(i=0;i<n;i++)
        {
             mins[i]=a[0][i];
              for(int j=1;j<n;j++)
               {
                  mins[i]=a[j][i];
                                  
               }
             printf("%2d", mins[i]);
        }
        for(i=0;i<n;i++)
        {
            delete [] mins[i];
        }
       for( i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
и я еще std не проходил это что за оператор
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
08.01.2011, 20:51     Как применять функции? #18
Цитата Сообщение от Steam.dll Посмотреть сообщение
и я еще std не проходил это что за оператор
Это стандартное пространство имен.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 21:42     Как применять функции? #19
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  for(int i=0;i<n;i++)
    {
      mins[i]=a[0][i];
      for(int j=1;j<n;j++)
        mins[i]=std::min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
        unsigned int *mins=find_mins(a,n);
        for(int i=0;i<n;i++) printf("%2d", mins[i]);
        for(int i=0; i<n; i++) delete [] a[i];
        delete [] a;
    delete [] mins;
        return 0;
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
у меня иногда вместо 2,1,0 встречается и элемент -1, это нормально ?)

Добавлено через 1 минуту
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vx5@Dev:~/cpp$ ./a.out
 
             massiv
 
  30   2   1   1   2   1  61
 
   2   6   1   1   2  51   1
 
   2   1   4   2  33   1   2
 
   1   2   1  22   2   1   1
 
   1   2  75   2  36   1   1
 
   1  -1   1   1   1  78   1
 
   5   1   1   2   2   2  28
 
 1 1 1 1 1 1 1
Добавлено через 3 минуты
и я еще std не проходил это что за оператор
если напрягает, можешь в самом верху написать
C++
1
using namespace std;
и потереть все std::

Добавлено через 40 минут
исправьте 48ую строку на:
C++
1
else if(i==n-j-1) a[i][j]=(rand()%050)*2+1;
вот откуда -1. Кстати, восьмиричные числа вы там осознано писали ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2011, 21:42     Как применять функции?
Еще ссылки по теме:

Надо применять delete [] или нет C++
Как рационально применять if C++
C++ Как строится ветвление, как читать данные, введённые с клавиатуры, как их потом применять

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

Или воспользуйтесь поиском по форуму:
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 21:42  [ТС]     Как применять функции? #20
-1 это думаю не страшно. я так с этим std не разобрался.а как его использовать.
у меня крмпилятор что то с ним ошибается пишит типа он не член стандартных.
Compiling...
1.cpp
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(16) : error C2039: 'min' : is not a member of 'std'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(16) : error C2065: 'min' : undeclared identifier
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(34) : error C2374: 'i' : redefinition; multiple initialization
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(27) : see declaration of 'i'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(35) : error C2374: 'i' : redefinition; multiple initialization
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(27) : see declaration of 'i'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(54) : error C2039: 'max' : is not a member of 'std'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(54) : error C2065: 'max' : undeclared identifier
Error executing cl.exe.

1.exe - 6 error(s), 0 warning(s)
Yandex
Объявления
08.01.2011, 21:42     Как применять функции?
Ответ Создать тему
Опции темы

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