Определить количество отрицательных элементов в массиве и вывести их адреса - C (СИ)
Формулировка задачи:
Написать программу, определяющую количество отрицательных элементов в массиве и выводящую их адреса. При вводе/выводе элементов использовать индексы, а обработку элементов массива осуществлять с помощью указателей. Расчет должен производиться в функции, в которую массив передается по указателю.
Помогите, х3 что делать, я походу вообще не понимаю указатели, выводить чушь полную.
#include "stdio.h"
int kolich(int n,float *mas) { int i,k; k=0; for (i=1; i<n;i++) { if (*(mas+i)<0) { k=k+1; return (mas+i); } } } int main() { int n,i,k; float *mas; printf ("vvedite razmer massiva:"); scanf ("%d", &n); mas=(float *)calloc(n,sizeof(float)); for(i=1;i<n;i++) { printf("massiv[%d]=",i); if (scanf("%f",&mas[i])==1) { kolich(n,mas); printf ("k=%d\n",k); } else printf ("nekorrektnie dannie"); } return 0; }
Решение задачи: «Определить количество отрицательных элементов в массиве и вывести их адреса»
textual
Листинг программы
int amount(int n, float *mas) { int k = 0; for (int i = 0; i < n; i++) if (*(mas + i) < 0){ k++; printf("& massiv[%i] = %p\n", i, (mas + i)); } return k; }
Объяснение кода листинга программы
- В функции
amount
определены две переменные:k
иi
. Значение переменнойk
инициализируется нулем, а переменнаяi
используется для цикла. - Следующая строка кода - это условие для цикла. Цикл будет выполняться до тех пор, пока значение переменной
i
меньшеn
. - Внутри цикла проверяется значение элемента массива
mas + i
. Если оно меньше нуля, то значение переменнойk
увеличивается на единицу. - После этого выводится сообщение, содержащее номер элемента массива и его адрес.
- В конце функции возвращается значение переменной
k
. - Функция
amount
предназначена для определения количества отрицательных элементов в массиве и вывода их адресов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д