Определить количество отрицательных элементов, расположенных на четных позициях - C (СИ)

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

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

Написал программу, теперь как сделать эту же программу с помощью указателей? Дан массив А(50). Определить количество отрицательных элементов, расположенных на четных позициях, и сумму положительных элементов, расположенных на нечетных позициях.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<locale.h>
#include<conio.h>
 
#define n 50
void main()
{
    int i,sum1; 
    int massiv[n];
    int kolvo=0;
    int summa=0;
    clrscr();
 
    printf("Ishodnyi massiv:\n");
    for(i=0;i<n;i++)
        scanf("%d",&massiv[i]);
    for(i=0;i<n;i++) 
        printf("%d\t ",massiv[i]);
 
    for(i=1; i<n; i+=2)
    {
        if(massiv[i]<0)
            kolvo++;
    }
    printf("\n kolichestvo otricatelnyh elementov na chetnyh poziciyah:  %d", kolvo);
    for(i=0;i<n;i+=2)
    {
    if(massiv[i]>0)
    sum1=massiv[i];
    summa+=sum1;
    }
    printf("\n summa polojitelnyh elementov, raspolojennyh na nechetnyh poziciyah: %d",summa);
getch();
}

Решение задачи: «Определить количество отрицательных элементов, расположенных на четных позициях»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <memory.h>
 
#define N 50
 
int main(int argc, char* argv[])
{
    int* A = new int[N];
    memset((void*)A, 0x00, sizeof(int) * N);
 
    for (int t = 0; t < N; t++)
    {
        *(A+t) = rand() % (2 * N) - N;
        printf("%d ",*(A+t));
    }
 
    int s1 = 0, s2 = 0;
    for (int i = 0; i < N; i++)
        if (*(A+i) < 0 && (i % 2) == 0) s1+=*(A+i);
        else if (*(A+i) > 0 && (i % 2) > 0) s2+=*(A+i);
 
    printf("\n\nsum1 = %d sum2 = %d\n",s1,s2);
 
    _getch();
 
    return 0;
}

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

В этом коде:

  1. Создается массив целых чисел A динамически с помощью оператора new.
  2. С помощью функции memset массив A инициализируется нулями.
  3. В цикле for случайным образом заполняется массив A числами от -N до N.
  4. В двух отдельных циклах for подсчитываются суммы элементов массива A, удовлетворяющих определенным условиям:
    • в первом цикле суммируются отрицательные четные числа,
    • во втором цикле суммируются положительные нечетные числа.
  5. Выводятся суммы s1 и s2.
  6. Программа ожидает нажатия клавиши с помощью функции _getch.
  7. Программа завершается возвратом значения 0.

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


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

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

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