Ошибка с аргументами функции - C (СИ)

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

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

Программа: функция нахождения четных элементов массива. (функция делает преобразования).
#include <stdio.h>
#include<conio.h>
#define _CRT_SECURE_NO_WARNINGS
int chetn(int a[5]) 
{
    int c;
    if (a[5] % 2 == 0) c++;
    return 0;
}
int main()
{
    int a[5];
    int i;
    for (i = 0; i< 5; i++)
    {
        scanf("%d", &a[i]);
        int otvet = chetn(a) //вот здесь ошибка: аргумент типа int* несовместим с параметром типа int
    }
}
еще жалуется на scanf

Решение задачи: «Ошибка с аргументами функции»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define LEN 10 
int firstEven(int * array); // возвращает индекс первого четного элемента, передача массива по указателю
int main() {
    int ar[LEN];
    for (int i = 0; i < LEN; i++) { 
        scanf("%d", &ar[i]);
    }
    printf("First even is : %d\n", firstEven(ar));
    system("PAUSE");
    return 0;
    
}
int firstEven(int * array)
{
    for (int i = 0; i < LEN; i++) {
        if ((array[i] % 2) == 0)
            system("PAUSE");
            return i; // возвращаем индекс
        
    }
    system("PAUSE");
    return -1; // если чётных нет
}

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

В этом коде:

  1. #include , #include , #include - включают необходимые для работы подключаемые файлы.
  2. #define LEN 10 - определяется размер массива.
  3. *int firstEven(int array);** - объявляется функция с именем firstEven, которая принимает указатель на массив целых чисел и возвращает индекс первого четного элемента.
  4. int main() { - начинается функция main, которая является точкой входа в программу.
  5. int ar[LEN]; - объявляется массив целых чисел с фиксированным размером.
  6. for (int i = 0; i < LEN; i++) { - начинается цикл, который заполняет массив значениями, введенными пользователем.
  7. scanf(%d, &ar[i]); - вводится значение для каждой ячейки массива.
  8. printf(First even is : %d\n, firstEven(ar)); - выводится индекс первого четного элемента массива.
  9. system(PAUSE); - программа ожидает нажатия клавиши для продолжения работы.
  10. return 0; - функция main завершается.
  11. *int firstEven(int array)** - начинается функция firstEven.
  12. for (int i = 0; i < LEN; i++) { - начинается цикл, который проверяет каждый элемент массива на четность.
  13. if ((array[i] % 2) == 0) - проверяется, является ли элемент четным.
  14. system(PAUSE); - программа ожидает нажатия клавиши для продолжения работы.
  15. return i; - возвращается индекс первого четного элемента.
  16. system(PAUSE); - программа ожидает нажатия клавиши для продолжения работы.
  17. return -1; - если в массиве нет четных чисел, возвращается -1.
  18. Код завершается.

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


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

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

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