Определить количество отрицательных элементов, расположенных на четных позициях - 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; }
Объяснение кода листинга программы
В этом коде:
- Создается массив целых чисел A динамически с помощью оператора new.
- С помощью функции memset массив A инициализируется нулями.
- В цикле for случайным образом заполняется массив A числами от -N до N.
- В двух отдельных циклах for подсчитываются суммы элементов массива A, удовлетворяющих определенным условиям:
- в первом цикле суммируются отрицательные четные числа,
- во втором цикле суммируются положительные нечетные числа.
- Выводятся суммы s1 и s2.
- Программа ожидает нажатия клавиши с помощью функции _getch.
- Программа завершается возвратом значения 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д