Определить количество отрицательных элементов в массиве и вывести их адреса - 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предназначена для определения количества отрицательных элементов в массиве и вывода их адресов.