#include <iostream>
using namespace std;
using std::cout;
using std::endl;
const int size = 100;
void phillip(int[], int & );
/* Preconditions: Array of base type in declared and int varuable declared
postconditions: the array is filled with values supllied by the user at
the keybord. the user is assked how many values they want - this value is
given to the second argument.
*/
int remdubs(int[], int& noel);
/* Preconditions: An array of basetype int that has noel values.
postconditions: The number of unique elemts in the array is returned. The function removes all dubplicates inside the array.
*/
void report(int s[], int d);
int main(int argc, char* argv[])
{
int ruby[size];
int numele = 0, numuniq = 0;
phillip(ruby, numele);
numuniq = remdubs(ruby, numele);
report(ruby, numuniq);
return 0;
}
void phillip(int myRuby[], int& s)
{
cout << "\nHow many values you want? ";
cin >> s;
cout << "\nPlease input " << s << " integers, hitting return after each one \n";
for (int i = 0; i < s; i++)
{
int num;
cin >> num;
}
}
int remdubs(int sapphire[], int& noel)
{
for (int i = 0; i < noel; i++)
{
for (int j = i + 1; j < noel; j++)
{
if (sapphire[i] == sapphire[j])
{
for (int k = j; k < noel; k++)
sapphire[k] = sapphire[k + 1];
noel--;
j--;
}
}
}
return noel;
}
void report(int s[], int d)
{
for (int i = 0; i < d; i++)
{
std::cout << "s[" << i << "]=" << s[i] << std::endl;
}
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIHN0ZDo6Y291dDsKdXNpbmcgc3RkOjplbmRsOwoKCmNvbnN0IGludCBzaXplID0gMTAwOwoKdm9pZCBwaGlsbGlwKGludFtdLCBpbnQgJiApOwovKiBQcmVjb25kaXRpb25zOiBBcnJheSBvZiBiYXNlIHR5cGUgaW4gZGVjbGFyZWQgYW5kIGludCB2YXJ1YWJsZSBkZWNsYXJlZAogICBwb3N0Y29uZGl0aW9uczogdGhlIGFycmF5IGlzIGZpbGxlZCB3aXRoIHZhbHVlcyBzdXBsbGllZCBieSB0aGUgdXNlciBhdAogICB0aGUga2V5Ym9yZC4gdGhlIHVzZXIgaXMgYXNza2VkIGhvdyBtYW55IHZhbHVlcyB0aGV5IHdhbnQgLSB0aGlzIHZhbHVlIGlzCiAgIGdpdmVuIHRvIHRoZSBzZWNvbmQgYXJndW1lbnQuCiovCgppbnQgcmVtZHVicyhpbnRbXSwgaW50JiBub2VsKTsKLyogUHJlY29uZGl0aW9uczogQW4gYXJyYXkgb2YgYmFzZXR5cGUgaW50IHRoYXQgIGhhcyBub2VsIHZhbHVlcy4KICAgcG9zdGNvbmRpdGlvbnM6IFRoZSBudW1iZXIgb2YgdW5pcXVlIGVsZW10cyBpbiB0aGUgYXJyYXkgaXMgcmV0dXJuZWQuIFRoZSBmdW5jdGlvbiByZW1vdmVzIGFsbCBkdWJwbGljYXRlcyBpbnNpZGUgdGhlIGFycmF5LgoqLwoKdm9pZCByZXBvcnQoaW50IHNbXSwgaW50IGQpOwoKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKICAgIGludCBydWJ5W3NpemVdOwogICAgaW50IG51bWVsZSA9IDAsIG51bXVuaXEgPSAwOwoKICAgIHBoaWxsaXAocnVieSwgbnVtZWxlKTsKCiAgICBudW11bmlxID0gcmVtZHVicyhydWJ5LCBudW1lbGUpOwoKICAgIHJlcG9ydChydWJ5LCBudW11bmlxKTsKCiAgICByZXR1cm4gMDsKfQoKdm9pZCBwaGlsbGlwKGludCBteVJ1YnlbXSwgaW50JiBzKQp7CiAgICBjb3V0IDw8ICJcbkhvdyBtYW55IHZhbHVlcyB5b3Ugd2FudD8gIjsKICAgIGNpbiA+PiBzOwoKICAgIGNvdXQgPDwgIlxuUGxlYXNlIGlucHV0ICIgPDwgcyA8PCAiIGludGVnZXJzLCBoaXR0aW5nIHJldHVybiBhZnRlciBlYWNoIG9uZSBcbiI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHM7IGkrKykKICAgIHsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGNpbiA+PiBudW07CiAgICB9Cn0KCmludCByZW1kdWJzKGludCBzYXBwaGlyZVtdLCBpbnQmIG5vZWwpCnsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9lbDsgaSsrKQogICAgewogICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IG5vZWw7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzYXBwaGlyZVtpXSA9PSBzYXBwaGlyZVtqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IGo7IGsgPCBub2VsOyBrKyspCiAgICAgICAgICAgICAgICAgICAgc2FwcGhpcmVba10gPSBzYXBwaGlyZVtrICsgMV07CgogICAgICAgICAgICAgICAgbm9lbC0tOwoKICAgICAgICAgICAgICAgIGotLTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBub2VsOwp9Cgp2b2lkIHJlcG9ydChpbnQgc1tdLCBpbnQgZCkKewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkOyBpKyspCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJzWyIgPDwgaSA8PCAiXT0iIDw8IHNbaV0gPDwgc3RkOjplbmRsOwogICAgfQp9