- #36
Jamin2112
- 986
- 12
Can someone give me an example code of how I should handle the case where an inputted array is empty? I'm wondering what the proper way is to do this. I promise it isn't for a homework assignment.
#include <iostream>
void print_array(int* arr, int sz) {
std::cout << "(" << arr[0];
for (int i = 1; i < sz; i++)
std::cout << "," << arr[i];
std::cout << ")\n";
}
void zeros_to_front(int* arr, int sz) {
int sum(0), i(0);
while (i < sz)
sum += arr[i++];
while (i > sz - sum - 1)
arr[i--] = 1;
while (i >= 0)
arr[i--] = 0;
}
int main() {
int myArray[] = {0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1};
std::cout << "before:\n";
int size = sizeof(myArray)/sizeof(int);
print_array(myArray, size);
zeros_to_front(myArray, size);
std::cout << "after:\n";
print_array(myArray, size);
return 0;
}
before:
(0,1,1,0,1,0,0,0,0,1,1,0,1)
after:
(0,0,0,0,0,0,0,1,1,1,1,1,1)
#include <iostream>
void print_array(int* arr, int sz) {
std::cout << "(" << arr[0];
for (int i = 1; i < sz; i++)
std::cout << "," << arr[i];
std::cout << ")\n";
}
int mode(int* arr, int sz) {
std::map<int,int> cntMap;
int most = arr[0];
for (int i = 0; i < sz; i++) {
if (!cntMap.count(arr[i])) {
cntMap[arr[i]] = 0;
} else {
cntMap[arr[i]]++;
}
if (cntMap[arr[i]] > cntMap[most]) {
most = arr[i];
}
}
return most;
}int main() {
int myArray[] = {0, 1, 4, 4, 59, 3, 0, -1, -69, 69, 103, 103, 103, 2, 9, 1, 7, 5};
std::cout << "the mode of\n";
int size = sizeof(myArray)/sizeof(int);
print_array(myArray, size);
std::cout << "is " << mode(myArray, size);
return 0;
}
the mode of
(0,1,4,4,59,3,0,-1,-69,69,103,103,103,2,9,1,7,5)
is 103