RE WRITE THIS CODE FROM C TO C++: #include <stdio.h> #include <stdlib.h> void sw
ID: 3917704 • Letter: R
Question
RE WRITE THIS CODE FROM C TO C++:
#include <stdio.h>
#include <stdlib.h>
void swap(int array[], int i, int j){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void bubble_sort(int array[], int n){
int i, j = 0,swapped = 1;
while (swapped)
{
swapped = 0;
for (i = 0; i < n - 1 - j; i++)
{
if (array[i] > array[i + 1])
{
swap(array, i, i + 1);
swapped = 1;
}
}
++j;
}
}
void bubble_sort_descending(int array[], int n){
int i, j = 0,swapped = 1;
while (swapped)
{
swapped = 0;
for (i = 0; i < n - 1 - j; i++)
{
if (array[i] < array[i + 1])
{
swap(array, i, i + 1);
swapped = 1;
}
}
++j;
}
}
void print_array(int array[], int n){
int i;
for (i = 0; i < n; i++)
printf("%d%c", array[i], (i == n - 1) ? ' ' : ' ');
}
int max_value(int array[], int n){
int i, max=array[0];
for(i=0;i<n;i++){
if(max < array[i]){
max=array[i];
}
}
return max;
}
int min_value(int array[], int n){
int i, min=array[0];
for(i=0;i<n;i++){
if(min > array[i]){
min=array[i];
}
}
return min;
}
float find_average(int array[],int n){
int i;
float average=0;
for(i=0;i<n;i++)
average += array[i];
average = (float) average/n;
return average;
}
void find_key(int array[],int n, int key){
int i,flag=0;
for(i=0;i<n;i++){
if(array[i]== key){
printf("The Key : %d was found in position %d of the array ",key,i);
flag=1;
}
}
if(flag==0){
printf("The key: %d entered is not in the array ",key);
}
}
int main()
{
int i=1,j=0,m=0,s=0,x=1, key;
printf("How many numbers would you like to enter ");
scanf("%d",&i);
int *array = NULL;
array = malloc(i * sizeof(int));
for(j=0;j<i;j++)
{
printf("Please enter a number (%d): ",j+1);
scanf("%d",&m);
array[j]= m;
}
while(x){
printf(" Enter 1 if you want sort in ascending order ");
printf("Enter 2 if you want to sort in descending order ");
printf("Enter 3 if you want the max value of the values entered ");
printf("Enter 4 if you want the min value of the values entered ");
printf("Enter 5 if you want to find the average of the numbers entered ");
printf("Enter 6 if you want to find the location of a key ");
printf("Enter 7 if you want to exit the program ");
printf(" ");
scanf("%d",&s);
printf(" ");
switch(s)
{
case 1:
bubble_sort(array,i);
print_array(array,i);
break;
case 2:
bubble_sort_descending(array,i);
print_array(array,i);
break;
case 3:
printf("The max value is: %d ",max_value(array,i));
break;
case 4:
printf("The min value is: %d ",min_value(array,i));
break;
case 5:
printf("The averages of the values entered is : %f ",find_average(array,i));
break;
case 6:
printf("Please enter the key that you want to find in the array ");
scanf("%d",&key);
find_key(array,i,key);
break;
case 7:
x=0;
break;
}
}
return 0;
}
Explanation / Answer
#include <iostream>
#include <cstdlib>
using namespace std;
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void bubble_sort(int array[], int n)
{
int i, j = 0, swapped = 1;
while (swapped) {
swapped = 0;
for (i = 0; i < n - 1 - j; i++) {
if (array[i] > array[i + 1]) {
swap(array, i, i + 1);
swapped = 1;
}
}
++j;
}
}
void bubble_sort_descending(int array[], int n)
{
int i, j = 0, swapped = 1;
while (swapped) {
swapped = 0;
for (i = 0; i < n - 1 - j; i++) {
if (array[i] < array[i + 1]) {
swap(array, i, i + 1);
swapped = 1;
}
}
++j;
}
}
void print_array(int array[], int n)
{
int i;
for (i = 0; i < n; i++)
cout << array[i] << ((i == n - 1) ? ' ' : ' ');
}
int max_value(int array[], int n)
{
int i, max = array[0];
for (i = 0; i < n; i++) {
if (max < array[i]) {
max = array[i];
}
}
return max;
}
int min_value(int array[], int n)
{
int i, min = array[0];
for (i = 0; i < n; i++) {
if (min > array[i]) {
min = array[i];
}
}
return min;
}
float find_average(int array[], int n)
{
int i;
float average = 0;
for (i = 0; i < n; i++)
average += array[i];
average = (float)average / n;
return average;
}
void find_key(int array[], int n, int key)
{
int i, flag = 0;
for (i = 0; i < n; i++) {
if (array[i] == key) {
cout << "The Key : " << key << " was found in position " << i << " of the array ";
flag = 1;
}
}
if (flag == 0) {
cout << "The key: " << key << " entered is not in the array ";
}
}
int main()
{
int i = 1, j = 0, m = 0, s = 0, x = 1, key;
cout << "How many numbers would you like to enter ";
cin >> i;
int* array = NULL;
array = new int[i];
for (j = 0; j < i; j++) {
cout << "Please enter a number ( " << j+1 << "): ";
cin >> m;
array[j] = m;
}
while (x) {
cout << " Enter 1 if you want sort in ascending order ";
cout << "Enter 2 if you want to sort in descending order ";
cout << "Enter 3 if you want the max value of the values entered ";
cout << "Enter 4 if you want the min value of the values entered ";
cout << "Enter 5 if you want to find the average of the numbers entered ";
cout << "Enter 6 if you want to find the location of a key ";
cout << "Enter 7 if you want to exit the program ";
cout << endl;
cin >> s;
cout << endl;
switch (s) {
case 1:
bubble_sort(array, i);
print_array(array, i);
break;
case 2:
bubble_sort_descending(array, i);
print_array(array, i);
break;
case 3:
cout << "The max value is: " << max_value(array, i) << endl;
break;
case 4:
cout << "The min value is: " << min_value(array, i) << endl;
break;
case 5:
cout << "The averages of the values entered is : " << find_average(array, i) << endl;
break;
case 6:
cout << "Please enter the key that you want to find in the array ";
cin >> key;
find_key(array, i, key);
break;
case 7:
x = 0;
break;
}
}
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.