Ошибка с аргументами функции - 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; // если чётных нет }
Объяснение кода листинга программы
В этом коде:
- #include
, #include , #include - включают необходимые для работы подключаемые файлы. - #define LEN 10 - определяется размер массива.
- *int firstEven(int array);** - объявляется функция с именем firstEven, которая принимает указатель на массив целых чисел и возвращает индекс первого четного элемента.
- int main() { - начинается функция 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; - функция main завершается.
- *int firstEven(int array)** - начинается функция firstEven.
- for (int i = 0; i < LEN; i++) { - начинается цикл, который проверяет каждый элемент массива на четность.
- if ((array[i] % 2) == 0) - проверяется, является ли элемент четным.
- system(
PAUSE
); - программа ожидает нажатия клавиши для продолжения работы. - return i; - возвращается индекс первого четного элемента.
- system(
PAUSE
); - программа ожидает нажатия клавиши для продолжения работы. - return -1; - если в массиве нет четных чисел, возвращается -1.
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д