Динамические массивы, помогите студентке

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Elena110
Сообщения: 1
Зарегистрирован: 11 ноя 2013, 19:47

Нужно переделать код этих двух статических массивов в динамический с небольшим дополнением указанным в коде, к исходному коду прилагаю задания для ясности, помогите пожалуйста, всем кармы!

Дан одномерный массив (A[9]) double, найти сумму элементов находящихся в диапазоне от N до K (N и K вводятся с клавиатуры)

Код: Выделить всё

#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define N 9
 
int main(int argc, char* argv[])
{
    double A[N] = { 2.5, 4.7, 3.9, 1.6, 2.7, 3.8, 9.4, 2.8, 1.4 }; \\ тут должно быть double * A
 
    double n = 0, k = 0;
 
    printf("n = "); scanf("%lf",&n);
    printf("k = "); scanf("%lf",&k);
 
    for (int i = 0; i < N; i++)
        if (A[i] >= n && A[i] <= k) 
            printf("%lf ",A[i]);
 
    _getch();
}
Дан двумерный массив B [3][4], найти сумму элементов находящихся в диапазоне от N до K (N и K вводятся с клавиатуры) в каждой строчке и в каждом столбце.

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 3
#define M 4
 
int main(int argc, char* argv[])
{
    double A[N][M] = { { 0 } }; \\ тут должно быть double **A
 
    for (int t1 = 0; t1 < N; t1++)
    {
        for (int t2 = 0; t2 < M; t2++)
        {
            A[t1][t2] = (double)rand() / RAND_MAX;
            printf("%lf ",A[t1][t2]);
        }
 
        printf("\n");
    }
 
    double n = 0, k = 0;
 
    printf("n = "); scanf("%lf",&n);
    printf("k = "); scanf("%lf",&k);
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            if (A[i][j] >= n && A[i][j] <= k)
                printf("A[%d][%d] = %lf\n",i,j,A[i][j]);
 
    _getch();
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А в чём проблема, собственно? Синтаксис не понятен?

Код: Выделить всё

int main(int argc, char* argv[])
{
    // double A[N] = { 2.5, 4.7, 3.9, 1.6, 2.7, 3.8, 9.4, 2.8, 1.4 }
    double* A = new double [N];
    A[0] = 2.5;
    ...
    A[8] = 1.4;

    // other code

    delete [] A;
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить