Помогите кто-нибудь, прошу) Вот только начали изучать С++..еще толком не разбираюсь Задание было Написать программу с рекурсивной функцией. постановка задачи: пользователь вводит какое то количество чисел (ограничение можно ставить любое... я выбрала что б вводили 10 чисел) . Надо найти соотношение максимально числа ряда и минимального.. . Мудрила-мудрила.. . вот что вышло: #include <iostream.h> #include <conio.h>
#define N 10
float maxi(float);
float max(float a[N], int i) {for (i=0; i<n;++i)>>a; int max=0; for( i=0;i<n;++i)>) max=i; return i; }
unsigned mini (float); float min(float a[N], int j) {for (j=0;j<n;++j)>>a[j]; int min=0; for(int j=0;j<n;++j)>a[j]) min=j; return j; }
void main() { float a[N]; int i,j; cout<<"\n Vvedite stroku iz 10 chisel: "; for(i=0;i<n;++i)>>a; for(j=0;j<n;++j)>>a[j]; int max1; max1=maxi(a); int min1; min1=mini(a[j]); cout<<"\n max= "<
Дополнен 12 лет назад
cout<<"\n max= "<
Дополнен 12 лет назад
cout<<"\n max= "<
Дополнен 12 лет назад
ладно, что-то всю программу здесь писать не хочет)) ) но проблема тут с самой рекурсией
Попробуем найти минимум так: int min(int *a, int start, int end) { if (start==end) return a[start]; int x = min(a, start+1, end); if (x < a[start]) return x; else return a[start]; } Вызываем функцию с параметрами start = 0, end =n-1 (n - число элементов) Выход из функции произойдёт, когда длина массива будет равна 1 (1 строка) . Вторая строка - рекурсивно вызываем функцию с start равным 1, 2, и так далее. Когда дойдём до последнего элемента, то есть выполнится условие в первой строке, x будет равен последнему элементу массива, и возвращен в предыдущий вызов функции. В третьей строке сравниваем его с предыдущим элементом, и так до тех пор пока не выйдем в первую функцию, то есть на самом деле просмотр массива идёт с конца. Не удивляйтесь, что х всё время не определён - третья строка выполняется только после выполнения условия в первой.
Может описание несколько сумбурно, но рекурсию придется как-то понять.
"всю программу здесь писать не хочет" :) это Вы не хотите! Уж пора бы научиться расставлять пробелы, как их необходимо расставлять для данного редактора, особенно с того момента, где у Вас прекращается вывод или выкладывать на http://pastebin.com/
Вот только начали изучать С++..еще толком не разбираюсь
Задание было Написать программу с рекурсивной функцией. постановка задачи: пользователь вводит какое то количество чисел (ограничение можно ставить любое... я выбрала что б вводили 10 чисел) . Надо найти соотношение максимально числа ряда и минимального.. .
Мудрила-мудрила.. . вот что вышло:
#include <iostream.h>
#include <conio.h>
#define N 10
float maxi(float);
float max(float a[N], int i)
{for (i=0; i<n;++i)>>a;
int max=0;
for( i=0;i<n;++i)>) max=i;
return i;
}
unsigned mini (float);
float min(float a[N], int j)
{for (j=0;j<n;++j)>>a[j];
int min=0;
for(int j=0;j<n;++j)>a[j]) min=j;
return j;
}
void main()
{ float a[N];
int i,j;
cout<<"\n Vvedite stroku iz 10 chisel: ";
for(i=0;i<n;++i)>>a; for(j=0;j<n;++j)>>a[j];
int max1;
max1=maxi(a);
int min1;
min1=mini(a[j]);
cout<<"\n max= "<