C++ 递归函数输出数组的最小数目

C++ 递归函数输出数组的最小数目,c++,recursion,C++,Recursion,我被要求创建一个递归函数,该函数输出用户输入的最小数组数。问题是,当运行代码时,输出很有趣,而且cout会用奇怪的值重复多次 #include <iostream> using namespace std; void recursiveMinimum(int i, int f, int *a, int min) { if(a[i]<min) { min=a[i]; } i+

我被要求创建一个递归函数,该函数输出用户输入的最小数组数。问题是,当运行代码时,输出很有趣,而且cout会用奇怪的值重复多次

#include <iostream>
using namespace std;

    void recursiveMinimum(int i, int f, int *a, int min)
    {
        if(a[i]<min)
        {
            min=a[i];
        }
        i++;
        if (i<f)
        { 
            recursiveMinimum(i, f, a, min);
        }
        cout<<"the minimum number is "<<min<<endl;
     }

     void main ()
     {
         int *a, b=1000, f;
         a= new int [b];
         cout<<"please enter the array, enter '1000' without the quotes to stop"<<endl;
         for(int i=0; i<b; i++)
         {
            cin>>a[i];
            if (a[i]==1000)
             {
                 a[i]=NULL;
                 f=i;
                 break;
             }
        }
         recursiveMinimum(0, f, a, a[0]);
         system("pause");
     }
#包括
使用名称空间std;
无效递归最小值(int i,int f,int*a,int min)
{

如果(A[i] 我不太了解C++,但不是多次调用CUT,特别是每次调用递归函数时,这里是更新的RealSimeMimimime函数:

void recursiveMinimum(int i, int f, int *a, int min)
{
    if(a[i]<min)
    {
        min=a[i];
    }
    i++;
    if (i<f)
    { 
        recursiveMinimum(i, f, a, min);
    } else {
        cout<<"the minimum number is "<<min<<endl;
        return;
    }
 }
void recursiveMinimum(int i、int f、int*a、int min)
{

如果(a)你的问题是什么?我不明白为什么函数中的“CUT”重复了很多次,虽然它只需要工作一次,但是最小的改变每一个可能,“我在哪里可以得到一个不蹩脚的C++书籍?”谢谢你的讽刺,先生……但可悲的事实是,这个世界上并不是每个人都像你一样是专业人士……我很抱歉,我正在努力学习并寻求帮助。@AmrShrief:我不怪你——我怪的是那些写了你要学的书/教程的人。他们在教你可怕的做法。你最好找到一个不那么糟糕的源代码。没问题。另外,不要担心“愚蠢”的错误。递归是计算机科学中最难的科目之一。此外,每个人都会犯愚蠢的错误。谢谢你的鼓励:)Stackoverflow有时是一个寒冷的地方。然而,有些人并不总是消极和可怕的