Не работает функция с указателями - C (СИ)

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

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

Массив из 20 элементов, выводится автоматически, 2 функции: 1) считает пары рядом стоящих одинаковых элементов при помощи

индексов

i_pare 2) считает пары рядом стоящих одинаковых элементов при помощи

указателей

p_pare 1 функция с индексами - работает 2 функция с указателями -

не работает

можете исправить ошибку? код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <windows.h>
 
#define vec1 20
#define vec2 25
 
void i_pare(int vector[vec1], const int size);
void p_pare(int *vector, const int size);
 
int main()
{//1
    int vector[vec1], i;
    system("cls");
    srand(time(NULL));
    printf("Viendimensiju mavivs:\n");
    for(i = 0; i < vec1; i++)
    {
          vector[i]=2-rand()%4;
          printf("%3d", vector[i]);
    }
    printf("\n\n");
    printf("Paru skaits ar indeksu metodi:\n");
    i_pare(vector, vec1);
    printf("\n\n");
    printf("Paru skaits ar raditaju metodi:\n");
    p_pare(vector, vec1);
    printf("\n");
    system("pause");
    //getch();
    return 0;
}//1    
    
void i_pare(int vector[vec1], const int size)
{//1a
int i , count = 0;
for(i = 0; i < size-1; ++i)
if(vector[i] == vector[i+1])
++count;
printf("%d ", count);
}//1a
 
void p_pare(int *vector, const int size)
{//2a
int i, count =0;
for(i = 0; i < size-1; ++i)
if(*vector == *(vector+1))
++count;
printf("%d ", count);
}//2a

Решение задачи: «Не работает функция с указателями»

textual
Листинг программы
void p_pare(int *vector, const int size)
{//2a
int i, count =0;
for(i = 0; i < size-1; ++i)
if(*(vector+i) == *(vector+i+1)) //здесь была ошибка
++count;
printf("%d ", count);
}//2a

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

В данном коде представлена функция с именем p_pare, которая принимает два аргумента: int *vector и const int size. Функция выполняет следующие действия:

  1. Объявляет две переменные: i и count, которые будут использоваться в цикле. Значение переменной count инициализируется нулем.
  2. Запускает цикл for, который начинается с i = 0 и продолжается до i < size-1. То есть цикл будет выполняться для каждого элемента вектора, кроме последнего.
  3. Внутри цикла проверяет, равны ли значения текущего элемента вектора и следующего элемента вектора. Если они равны, то значение переменной count увеличивается на единицу.
  4. После завершения цикла выводит значение переменной count с помощью функции printf. Значение count будет выводиться вместе с пробелом. Таким образом, данный код считает количество одинаковых элементов в векторе и выводит это количество.

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


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

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

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