C 2 computer science assignment help

Lab 2 Part II

Problem 1: (50 points)

You are given the following source code to search for a number in an array

#include <iostream>

using namespace std;

int search(int sa, int list[ ], int size)

  bool notFound = true;

  int position = -1;

  int k = 0;

  while (k<size && notFound)

  {

  if (list[k] == sa)

  {  notFound = false;

  position = k;

  }

  k++;

  }

  return position;

}

   

int main( )

{

int searchArg = 17; 

int myList[10] = {16,14,54,23,8,12,17,36,11,22};

int pos;

// call Search to find the value’s position

pos = search(17,myList,10);

cout << “Search key was found at index “ << pos << endl;

Modify search function and the main method to search for a string value, entered by the user, in a string array, instead of searching for an integer value in an integer array.

This is the string list to use for test:

List: Rome, Ankara, Brussels, London, Madrid, Paris, Rio di Janeiro, Tokyo, Washington DC

2.

Write the program that asks the user to enter 10 names of cities (one name at a time) to be stored in an array, sorts the resulting list of city names lexicographically and displays the sorted list to the console.

Note: Lexicographical order is a generalization of the way the alphabetical order of words is based on the alphabetical order of their component letters. It is also known as dictionary order.

Hint:  Comparing two words lexicographically can be done by using “<” and “>” for C++ strings.

Example:

Original List: Paris, Washington DC, London, Tokyo, Madrid, Rio di Janeiro, Brussels, Ankara, Rome, Amsterdam

After applying the Lexicographical order, the list will be become:

Resulting List: Amsterdam, Ankara, Brussels, London, Madrid, Paris, Rio di Janeiro, Rome, Tokyo, Washington DC

If the first letters of the two cities are the same, you should compare the next ones.

Original List: Ankara, Amsterdam

Resulting List: Amsterdam, Ankara