Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Primaxim
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 12
1

Выделение памяти динамически под массив

15.09.2013, 15:21. Просмотров 524. Ответов 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
#include <stdio.h>
#include <conio.h>
#define n 5
float A[n][n]={{2,1,2,4,8},{1,5,1,5,3},{3,1,2,9,7},{9,8,3,5,2},{6,2,8,3,4}};
double S=0,S1=0;
void Show(float A[n][n]);
double summa1 (float A[n][n]);
double summa2(float A[n][n]);
int main(void)
{
 Show(A);              //Вывод на экран матрицы
 S = summa1(A);        //Сумма главной диагонали
 S1 = summa2(A);       //Сумма побочной диагонали
 getch();
}
void Show(float A[n][n])
    {int i,j;
    printf("matrix %d x %d",n,n);
    printf("\n");
     for (i=0;i<n;i++)
            {for (j=0;j<n;j++)
                {printf(" %.0f",A[i][j]);
                }
                printf("\n");
            }
    }
double summa1(float A[n][n])
     {int i;
      for(i=0;i<n;i++)
         {S=S+A[i][i];
         }
      printf("summa glavnoi diagonali= %.0f\n",S);
      return S;
     }
double summa2(float A[n][n])
    {int i;
     for(i=0;i<n;i++)
        {S1=S1+A[i][n-1-i];
        }
     printf("summa pobochnoi diagonali= %.0f\n",S1);
     return S1;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 15:21
Ответы с готовыми решениями:

Динамическое выделение памяти под массив
Доброго времени! Требуется ввести размер массива с клав-ры, заполнить массив - изменить его размер...

Выделение памяти под динамический массив
Нужна помощь, кому не трудно откликнитесь. Нубас вообще в указателях и выделении памяти. ...

Выделение памяти под двумерный массив
Здравствуйте! скажите пожалуйста почему нельзя выделить под двумерный массив память через функцию....

Динамическое выделение памяти под массив
Здравствуйте, помогите пожалуйста сделать в процедуре input динамическое выделение памяти под...

Выделение памяти под трехмерный массив
Здравствуйте. Выделяю память под трехмерный массив, но не получается обратиться к элементу...

3
anmartex
...
1733 / 1217 / 917
Регистрация: 12.02.2013
Сообщений: 1,994
15.09.2013, 16:13 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void show(float** A, size_t len);
double summa1(float** A, size_t len);
double summa2(float** A, size_t len);
 
int main()
{
    srand(time(NULL));
 
    size_t len = 5;
 
    float** A;
 
    size_t i, j;
 
    A = malloc(sizeof(float*) * len);
    for (i = 0; i < len; ++i)
    {
        A[i] = malloc(sizeof(float) * len);
        for (j = 0; j < len; ++j)
        {
            A[i][j] = rand() % 10;
        }
    }
 
    show(A, len);
    printf("summa glavnoi diagonali= %.0f\n", summa1(A, len));
    printf("summa pobochnoi diagonali= %.0f\n", summa2(A, len));
 
    return 0;
}
 
void show(float** A, size_t len)
{
    int i, j;
    printf("matrix %d x %d\n", len, len);
    for (i = 0; i < len; ++i)
    {
        for (j = 0; j < len; ++j)
        {
            printf("%.0f ", A[i][j]);
        }
        printf("\n");
    }
}
 
double summa1(float** A, size_t len)
{
    int i;
    float s = 0.0;
    for (i = 0; i < len; ++i)
    {
        s += A[i][i];
    }
 
    return s;
}
 
double summa2(float** A, size_t len)
{
    int i;
    float s = 0.0;
    for (i = 0; i < len; ++i)
    {
        s += A[i][len - 1 - i];
    }
    return s;
}
1
zss
Модератор
Эксперт С++
8105 / 7240 / 4507
Регистрация: 18.12.2011
Сообщений: 19,143
Завершенные тесты: 1
15.09.2013, 16:15 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
54
55
56
57
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int n;
double dat[5][5]={{2,1,2,4,8},{1,5,1,5,3},{3,1,2,9,7},{9,8,3,5,2},{6,2,8,3,4}};
void Show(double **A);
double summa1 (double **A);
double summa2(double **A);
int main(void)
{
    int i,j;
    n=5;
    double **A,S=0,S1=0;
    A=(double**)malloc(n*sizeof(double));
    for(i=0;i<n;i++)
        A[i]=(double*)malloc(n*sizeof(double));
    for(i=0;i<n;i++)
       for(j=0;j<n;j++)
           A[i][j]=dat[i][j];
    Show(A);              //Вывод на экран матрицы
    S = summa1(A);        //Сумма главной диагонали
    printf("summa glavnoi diagonali= %.0lf\n",S);
    S1 = summa2(A);       //Сумма побочной диагонали
    printf("summa pobochnoi diagonali= %.0lf\n",S1);
    for(i=0;i<n;i++)
        free(A[i]);
    free(A);
    getch();
}
void Show(double** A)
{
    int i,j;
    printf("matrix %d x %d",n,n);
    printf("\n");
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
            printf(" %.0lf",A[i][j]);
        printf("\n");
    }
}
double summa1(double** A)
{
    double S=0;
    int i;
    for(i=0;i<n;i++)
        S=S+A[i][i];
    return S;
}
double summa2(double** A)
{
    double S1=0;
    int i;
    for(i=0;i<n;i++)
        S1=S1+A[i][n-1-i];
    return S1;
 }
1
Primaxim
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 12
15.09.2013, 17:10  [ТС] 4
Спасибо большое, будем разбираться
0
15.09.2013, 17:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 17:10

Выделение памяти под массив в отдельной функции
#include&lt;stdio.h&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; void memory(int **a,int n,int m); void...

Неправильное выделение памяти под двумерный массив
Добрый вечер. Пишу код, по численным методам. Алгоритм разобрал, но мучаюсь с выделением памяти под...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru