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
1.) Consider the problem of determining whether a DFA and a regular expression are equivalent. Express this problem as a language and show that it is decidable. ii) Let ALLDFA = {(A)| A is a DFA and L(A) = "}. Show that ALLDFA is decidable. iii) Let AECFG = {(G)| G is a CFG that generates &}. Show that AECFG is decidable. iv) Let ETM {(M)| M is a TM and L(M) = 0}. Show that ETM, the complement of Erm, is Turing-recognizable. Let X be the set {1, 2, 3, 4, 5} and Y be the set {6, 7, 8, 9, 10). We describe the functions f: XY and g: XY in the following tables. Answer each part and give a reason for each negative answer. n f(n) n g(n) 1 6 1 10 2 7 2 9 3 6 3 8 4 7 4 7 5 6 5 6 Aa. Is f one-to-one? b. Is fonto? c. Is fa correspondence? Ad. Is g one-to-one? e. Is g onto? f. Is g a correspondence? vi) Let B be the set of all infinite sequences over {0,1}. Show that B is uncountable using a proof by diagonalization.
Can you find the least amount of different numbers to pick from positive numbers (integers) that are at most 100 to confirm two numbers that add up to 101 when each number can be picked at most two times?
Can you find the formula for an that satisfies the provided recursive definition? Please show all steps and justification
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
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT