Ошибка с аргументами функции - 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.
- Код завершается.