Problem Solving with C++ (10th Edition)
Problem Solving with C++ (10th Edition)
10th Edition
ISBN: 9780134448282
Author: Walter Savitch, Kenrick Mock
Publisher: PEARSON
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 14, Problem 2P

Explanation of Solution

Recursive version of the function “indexOfSmallest”:

The recursive version of the function “indexOfSmallest” is shown below:

/* Recursive function definition for compute index of smallest element */

int indexOfSmallest(const int a[], int startIndex, int numberUsed)

{

    /* Assign minimum to array of starting index */

    int min = a[startIndex];

   /* If starting index is equal to "numberUsed-1", then */

    if(startIndex == numberUsed - 1)

        /* Returns the starting index */

        return startIndex;

   /* Otherwise recursively call the function "indexOfSmallest" */

   int indexOfMin = indexOfSmallest(a, startIndex+1, numberUsed);

   /* If the value of "min" is greater than "a[indexOfMin]" */

    if(min > a[indexOfMin])

        /* Returns index of minimum value */

        return indexOfMin;

    //Otherwise

    else

        /* Returns the starting index */

        return startIndex;

}

Complete executable program code:

The modified complete code is implemented for given function is given below:

//Header file

#include <iostream>

//Function declaration

void fillArray(int a[], int size, int& numberUsed);

//Precondition: size is the declared size of the array a.

//Postcondition: numberUsed is the number of values stored in a.

//a[0] through a[numberUsed - 1] have been filled with

//nonnegative integers read from the keyboard.

void sort(int a[], int numberUsed);

//Precondition: numberUsed <= declared size of the array a.

//The array elements a[0] through a[numberUsed - 1] have values.

//Postcondition: The values of a[0] through a[numberUsed - 1] have

//been rearranged so that a[0] <= a[1] <= ... <= a[numberUsed - 1].

void swapValues(int& v1, int& v2);

//Interchanges the values of v1 and v2.

int indexOfSmallest(const int a[], int startIndex, int numberUsed);

//Precondition: 0 <= startIndex < numberUsed. Referenced array elements have

//values.

//Returns the index i such that a[i] is the smallest of the values

//a[startIndex], a[startIndex + 1], ..., a[numberUsed - 1].

//Main function

int main( )

{

    //For standard input and output

    using namespace std;

    //Prompt statement

   cout << "This program sorts numbers from lowest to highest.\n";

    //Declare variables

    int sampleArray[10], numberUsed;

    //Call fill array function

    fillArray(sampleArray, 10, numberUsed);

    //Prompt statement

    cout << "Index of minimum number in given array: ";

    //Call the function "indexOfSmallest"

   cout << indexOfSmallest(sampleArray, 0, numberUsed) << endl;

    //Call the function "sort"

    sort(sampleArray, numberUsed);

    //Prompt statement

    cout << "In sorted order the numbers are:\n";

    //Display the sorted number using "for" loop

    for (int index = 0; index < numberUsed; index++)

    cout << sampleArray[index] << " ";

    cout << endl;

    return 0;

}

//Uses iostream:

//Function definition for fill array

void fillArray(int a[], int size, int& numberUsed)

{

    //For standard input and output

    using namespace std;

    //Prompt statement

   cout << "Enter up to " << size << " nonnegative whole numbers.\n" << "Mark the end of the list with a negative number...

Blurred answer
Students have asked these similar questions
Using JavaScriptDefine a function getMonth which accepts number from 1 to 12 as an argument and return the descriptive name of the month. For example: getMonth(1) should return January while getMonth(12) returns December, finally getMonth(-1) returns null. Use array or object to define a list of names for the month and refrain from using if statement to check the argument if it's 1, 2, etc.
In java  Develop a function that accepts an array and returns true if the array contains any duplicate values or false if none of the values are repeated. Develop a function that returns true if the elements are in decreasing order and false otherwise.  A “peak” is a value in an array that is preceded and followed by a strictly lower value. For example, in the array {2, 12, 9, 8, 5, 7, 3, 9} the values 12 and 7 are peaks. Develop a function that returns the number of peaks in an array of integers. Note that the first element does not have a preceding element and the last element is not followed by anything, so neither the first nor last elements can be peaks.  Develop a function that finds the starting index of the longest subsequence of values that is strictly increasing. For example, given the array {12, 3, 7, 5, 9, 8, 1, 4, 6}, the function would return 6, since the subsequence {1, 4, 6} is the longest that is strictly increasing.  Develop a function that takes a string…
Write a recursive void function that has one parameter that is a positive integer.  When called, the function writes its argument to the screen backward.  That is,, if the argument is 1234, it outputs the following to the screen: 4321.   I've literally tried to create this program and I have no idea how to make it work.  Please help me.  Is it possible to explain line by line what the code does?
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning