Возврат значения функцией - C (СИ)
Формулировка задачи:
Суть состоит в том, что когда я хочу вивести значение t в теле main выводится 0.
Кто знает что я не так пишу?
#include <stdio.h>
int FuncOne(int *pArr, int r, int x)
{
int t=-1;
for (int i=0; i<r;++i)
if (pArr[i]==x)
t=++i;
return t;
}
int main()
{
int t,x,r;
int *pArr=new int[r];
printf("Enter massiv size:");
scanf("%i",&r);
printf("Enter elements:\n");
for( int i=0; i<r;++i)
scanf("%i", &pArr[i]);
printf("Enter x:");
scanf("%i",&x);
printf("Number of element what =x:%i",t);
}Решение задачи: «Возврат значения функцией»
textual
Листинг программы
#include <stdio.h>
int FuncOne(int *pArr, int r, int x)
{
int t=0;
for (int i=0; i<r;++i)
if (pArr[i]==x)
t++;
return t;
}
int main()
{
int t,x,r;
printf("Enter massiv size:");
scanf("%i",&r);
int *pArr=new int[r];
printf("Enter elements:\n");
for( int i=0; i<r;++i)
scanf("%i", &pArr[i]);
printf("Enter x:");
scanf("%i",&x);
printf("Number of element what =x:%i",FuncOne(pArr, r, x));
}
Объяснение кода листинга программы
- Включаем библиотеку
для работы с выводом в консоль - Функция FuncOne принимает три параметра: указатель на массив, размер массива и значение, которое нужно найти в массиве
- Внутри функции инициализируем переменную t = 0, которая будет считать количество найденных элементов
- Цикл for проходит по всем элементам массива, начиная с 0 и до r (размер массива - 1)
- Если значение элемента pArr[i] равно x, то увеличиваем значение переменной t на 1
- Функция возвращает значение переменной t
- В функции main объявляем переменные t, x, r
- С помощью scanf считываем значение переменной r (размер массива)
- С помощью new выделяем память под массив pArr**, размером r
- С помощью цикла for считываем значения элементов массива pArr с помощью scanf**
- С помощью scanf считываем значение переменной x
- Вызываем функцию FuncOne с параметрами pArr, r, x
- Выводим результат на экран с помощью printf