// NAV_BonusProject.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <vector>
#include <random>
#include <string>
using namespace std;
vector <int> v;
void print(int num) {
v.clear();
for (int i = 0; i < num; i++) {
int random = rand() % 100;
v.push_back(random);
}
for (int i = 0; i < num; i++) {
cout << v[i] << " ";
}
cout << endl;
}
void randomize(int num) {
v.clear();
if (num > 0) {
for (int i = 0; i < num; i++) {
int random = rand() % num - 1;
v.push_back(random);
}
}
else {
num = 20;
for (int i = 0; i < num; i++) {
int random = rand() % 100;
v.push_back(random);
}
}
for (int i = 0; i < num; i++) {
cout << v[i] << " ";
}
cout << endl;
}
void add_value(int num, int adder) {
v.clear();
for (int i = 0; i < num; i++) {
int random = (rand() % 100) + adder;
v.push_back(random);
}
for (int i = 0; i < num; i++) {
cout << v[i] << " ";
}
cout << endl;
}
void reverse(int num) {
v.clear();
for (int i = 0; i <= num; i++) {
int random = rand() % 10;
v.push_back(random);
}
sort(v.begin(), v.end());
for (int i = num; i > 0; i--) {
cout << v[i] << " ";
}
}
float average(int num) {
v.clear();
int sum = 0;
for (int i = 0; i <= num; i++) {
int random = rand() % 100;
v.push_back(random);
}
if (num == 0) {
return 0;
}
for (unsigned int i = 0; i < v.size(); i++) {
sum += v[i];
}
cout << endl;
return (sum / v.size());
}
void magic(int num) {
v.clear();
int sum = 0;
for (int i = 0; i <= num; i++) {
int random = rand() % 100;
v.push_back(random);
}
for (int i = 0; i <= num; i++) {
if (v[i] % 2 == 0) {
v[i] = v[i] + 1;
}
else {
v[i] = v[i] - 1;
}
}
for (int i = 0; i < num; i++) {
cout << v[i] << " ";
}
cout << endl;
}
void repeat(int num) {
v.clear();
for (int i = 0; i <= num; i++) {
int random = rand() % 100;
v.push_back(random);
}
if (num == 0) {
return;
}
v.resize(num * 2);
int q;
for (int i = 0; i < num; i++) {
q = i + num;
v[q] = v[i];
}
for (unsigned int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
void chop(int num) {
v.clear();
for (int i = 0; i <= num; i++) {
int random = rand() % 100;
v.push_back(random);
}
if (num == 0) {
return;
}
v.resize(num / 2);
for (unsigned int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
void john(int num) {
v.clear();
for (int i = 0; i <= num; i++) {
int random = rand() % 100;
v.push_back(random);
}
int a = num/2;
v.insert(v.begin()+ a, 42);
for (unsigned int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
void zero(int num, int start, int end) {
v.clear();
if (start > end) {
return;
}
for (int i = 0; i < num; i++) {
int random = rand() % 100;
v.push_back(random);
}
for (int i = start; i <= end; i++) {
v[i] = 0;
}
for (unsigned int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
int main()
{
cout << "Calling print: ";
print(5);
cout << "Calling randomize: ";
randomize(0);
cout << "Calling add_value: ";
add_value(10, 5);
// missing zero
cout << "Calling zero: ";
zero(10, 0, 5);
cout << "Calling reverse: ";
reverse(10);
cout << "Calling average: " << average(20) << endl;
// magic
cout << "Calling magic: ";
magic(10);
// repeat
cout << "Calling repeat: ";
repeat(10);
// chop
cout << "Calling chop: ";
chop(10);
// john
cout << "Calling john: ";
john(10);
}