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