Как расчитать удвоенную сумму положительных элементов массива? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Где моя ошибка?( Объясните, пожалуйста.
#include <stdio.h>
#include <malloc.h>
#include <math.h>
 
void main (void)
{   
    int n,i;
    printf ("input size mass n= ");
    scanf ("%d", &n);
    int **A=(int**)malloc(n*sizeof(int*));
    for (i=0; i<n; i++)
    {
        A[i] = (int*) malloc (n*sizeof(int));
        printf ("\nA [%d]= ", i);
        scanf ("\n%d", &A[i]);
    }
    for (i=0; i<n; i++)
    {
        if (A[i] > 0)
        {
            A[i]=2*A[i];
        }
        printf ("\nNew mas %d", A[i]);
    }
    for (i = 0; i < n; i++)
    {
        free(A[i]);
    }
    free(A);
    getchar ();
    getchar ();
}
#include <stdio.h>
#include <malloc.h>
#include <math.h>
 
void main (void)
{   
    int n,i;
    printf ("input size mass n= ");
    scanf ("%d", &n);
    int **A=(int**)malloc(n*sizeof(int*));
    for (i=0; i<n; i++)
    {
        A[i] = (int*) malloc (n*sizeof(int));
        printf ("\nA [%d]= ", i);
        scanf ("\n%d", &A[i]);
    }
    for (i=0; i<n; i++)
    {
        if (A[i] > 0)
        {
            A[i]=2*A[i];
        }
        printf ("\nNew mas %d", A[i]);
    }
    for (i = 0; i < n; i++)
    {
        free(A[i]);
    }
    free(A);
    getchar ();
    getchar ();
}
Хотела попробовать так, однако программа все равно ругается(
    for (i=0; i<n; i++)
    {
        if (A[i] > 0)
        {
            s=s + A[i];
            s=s*2;
        }
        printf ("\nNew mas %d", A[i]);

Решение задачи: «Как расчитать удвоенную сумму положительных элементов массива?»

textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
#include <math.h>
 
int main (int atgc, char** argv)
{   
    int n,i;
    int s=0;
    printf ("input size mass n= ");
    scanf ("%d", &n);
    int **A=(int**)malloc(n*sizeof(int*));
    for (i=0; i<n; i++)
    {
        A[i] = (int*) malloc (n*sizeof(int));
        printf ("\nA [%d]= ", i);
        scanf ("\n%d", &A[i]);
    }
    for (i=0; i<n; i++)
    {
        if (A[i] > 0)
        {
            s = s + A[i];
            s = s*2;
        }
        printf ("\nNew mas %d", A[i]);
    }
    for (i = 0; i < n; i++)
    {
        free(A[i]);
    }
    free(A);
    getchar ();
    getchar ();
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены переменные:
    • n (размер массива)
    • i (счетчик для циклов)
    • s (сумма элементов массива)
  2. Пользователю предлагается ввести размер массива.
  3. Массив динамически выделяется с помощью malloc.
  4. Пользователю предлагается ввести элементы массива.
  5. Производится проверка каждого элемента массива на положительность.
  6. Если элемент положительный, то он прибавляется к переменной s.
  7. Значение переменной s удваивается.
  8. Выводится новое значение переменной s.
  9. После завершения работы с массивом, он освобождается с помощью функции free.
  10. Ввод и вывод данных осуществляется с помощью функции printf и scanf соответственно.
  11. Код ожидает ввода двух символов для завершения работы программы.
  12. Код завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы