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
We are considering the RSA encryption scheme. The involved numbers are small, so the communication is insecure.  Alice's public key (n,public_key) is (247,7). A code breaker manages to factories  247 = 13 x 19  Determine Alice's secret key. To solve the problem, you need not use the extended Euclid algorithm, but you may assume that her private key is one of the following numbers 31,35,55,59,77,89.
Consider the following Turing Machine (TM). Does the TM halt if it begins on the empty tape? If it halts, after how many steps? Does the TM halt if it begins on a tape that contains a single letter A followed by blanks? Justify your answer.
Pllleasassseee ssiiirrrr soolveee thissssss questionnnnnnn
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