Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2015, 03:39   #1
AndrewLoko
 
Регистрация: 12.01.2015
Сообщений: 6
По умолчанию Программа на языке Си. Рекурсия

Проверьте пожалуйста правильно ли я написал программу.

Задание: Используя рекурсивную процедуру или функцию, составить программу определения количества отрицательных элементов. Во всех задачах данные содержатся в одномерных массивах, содержащих N чисел.


Программа:
Код:
#include <stdio.h>
#include <stdlib.h>
#include "stdafx.h"

const int n=5;

int otric(int a[n], int i);

int main()
{
int mas[n] = {10, 1, 1, 1, 1};
printf (" Kolichestvo otricatelnih elementov = %d\n", otric(mas, n-1));
}


int otric(int a[n], int i)
{ if (i == 0)
{ if (a[i-1] < 0) 
       return 1;
else return 0;}
else 
{ if (a[i-1] > 0) return 1 + otric(a,i-1);
else return otric(a,i-1);}}

Последний раз редактировалось Stilet; 13.01.2015 в 07:36.
AndrewLoko вне форума Ответить с цитированием
Старый 13.01.2015, 11:16   #2
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Ваша программа даёт результат "4 отрицательных числа" - это на 4 больше, чем должно быть.
Попробуйте так:
Код:
#include <iostream.h>

const int size = 10;
//какой массив проверять, нижняя граница, верхняя граниа
int otric(int arr[], int min, int max);

int main(){
 int array[size] = {-1, 2, -3, 4, -5, 6, -7, 8, -9, 0};
 int total = 0;
 total = otric(array, 0, size);
 cout << total << endl;
system("pause");
return 0;
}

int otric(int arr[], int min, int max){
 if (max <= min )
	return 0;
 else
	return (arr[max-1] < 0 ? 1 : 0) + otric(arr, min, max - 1);
}
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия в языке Си AndrewLoko Помощь студентам 2 12.01.2015 15:03
SOS!!!!(на каком языке программа?)Нужно переделать программу,а я даже не знаю на каком она языке:eek::eek:,РЕБЯТА ПОМОГИ Нака Помощь студентам 10 19.11.2011 15:16
программа на c++ (рекурсия) Xaceo Помощь студентам 1 28.03.2011 16:10
Задача на языке Pascal. Рекурсия. (FainT) Помощь студентам 6 23.05.2009 15:45
Программа на русском языке в Windows XP на другом языке... Как? 29bit Свободное общение 4 01.02.2008 17:24