question archive My c++ code is not working and I cant figure out why #include<iostream> #include<string> #include<cassert> using namespace std; int enumerate(const string [], int n, string target) { if (n<0) return -1; int counter = 0; for (int i=0; i<n; i++) { if (a[i]==target) counter++; } return counter; } int locate(const string a[], int n, string target) { if (n<0) return -1; for (int i=0; i<n; i++) { if (a[i]==target) return i; } return -1; } bool locateSequence(const string a[], int n, string target, int& begin, int& end) { bool flag=false; if (n<0) return false; for (int i=0; i<n; i++) { if (a[i]==target&&flag==false) end=i; } return flag; } int locationOfMin(const string a[], int n) { int mindex=0; if(n<=0) return -1; for (int i=0; i<n; i++) { if (a[i]<a[mIndex]) mIndex=i; } return mIndex; } int moveToEnd(string a[], int n, int pos){ if (n<0) return-1; for (int=pos; i<n-1; i++) { string temp=a[i+1]; a[i+1]=a[i]; a[i]=temp; } return pos; } int moveToBeginning(string a[], int n, int pos){ if (n<0) return -1; for (int i=pos; i>0; i==) { string temp=a(i-1); a[i-1]=a[i]; a[i]=temp; } return pos; } int findDifference (const string a1[], int n1, const string a2[], int n2){ if (n1<o) return -1; if (n2<0) return -1; int temp=0; for (int i=0; i<n1 && i<n2; i++) { if (a1[i] !=a2[i]) return i; temp=i; } return temp; } int removeDups(string a[], int n) { if (n<0) return -1; int duplicate=0; string duplicateString=a[0]; for (int i=1; i<n; i++) { if (a[i] == duplicateString) a[i] = "duplicate"; else duplicateString=a[i]; } for (int i=0; i<n; i++) { while (a[i] !="duplicate"&& i<n-1) { i++; } for (int k=i+1; k<n; k++) { while (a[k] == "duplicate" && k<n-1) { k++; } string temp=a[k]; a[k]+a[i]; a[i]=temp; break; } } for (int i=0; i<n; i++) { if (a[i] !="duplicate") duplicate++; } return duplicate; } bool subsequence (const string a1[], int n1, const string a2[], int n2) { if (n1<0) return false; if(n2<0) return false; int start=0; bool flag=false; for (int i=0; i<n2; i++) { for (int j=start; j<n1; j++) { if (a2[i] == a1[j]) { flag=true; start=j+1; break; } } if (flag==false) return false; flag=false; } return true; } int makeMerger(const string a1[], int n1, const string a2[], int n2, string result[], int max){ if (n1<0) return -1; if (n2<0) return -1; if (n1+n2>max) { return -1; } int i=0; int j=0; int r=0; for (; i<n1 && j<n2; r++) { if (a1[i]<=a2[j]) result[r]=a1[i++]; else result[r]=a2[j++]; } if (i==n1) { for(; j<n2; r++) { result[r]=a1[i++]; } } return r; } int divide(string a[], int n, string divider) { if (n<0) return -1; int lessThanCounter=0; for (int i=0; i<n; i++) { if (a[i]<divider) lessThanCounter++; } int lessThan=0; int greaterThan=lessThanCounter; for (int i=0; i<lessThanCounter; i++) { if (a[i]=>divider) { string temp=a[greaterThan]; a[greaterThan]=a[i]; a[i]=temp; i--; greaterThan++; } } return lessThanCounter; } int main() { string h[7] = { "samwell", "jon", "margaery", "daenerys", "", "tyrion", "margaery" }; assert(enumerate(h, 7, "margaery") == 2); assert(enumerate(h, 7, "") == 1); assert(enumerate(h, 7, "sansa") == 0); assert(enumerate(h, 0, "margaery") == 0); assert(locate(h, 7, "margaery") == 2); assert(locate(h, 2, "margaery") == -1); int bg; int en; assert(locateSequence(h, 7, "daenerys", bg, en) && bg == 3 && en == 3); string g[4] = { "samwell", "jon", "daenerys", "tyrion" }; assert(locationOfMin(g, 4) == 2); assert(findDifference(h, 4, g, 4) == 2); assert(subsequence(h, 7, g, 4)); assert(moveToEnd(g, 4, 1) == 1 && g[1] == "daenerys" && g[3] == "jon"); string f[4] = { "daenerys", "tyrion", "margaery", "jon" }; assert(moveToBeginning(f, 4, 2) == 2 && f[0] == "margaery" && f[2] == "tyrion"); string e[5] = { "daenerys", "daenerys", "daenerys", "margaery", "margaery" }; assert(removeDups(e, 5) == 2 && e[1] == "margaery"); string x[4] = { "cersei", "jon", "jon", "sansa" }; string y[4] = { "daenerys", "jon", "margaery", "tyrion" }; string z[10]; assert(makeMerger(x, 4, y, 4, z, 10) == 8 && z[5] == "margaery"); assert(divide(h, 7, "margaery") == 3); cout << "All tests succeeded" << endl; }
Subject:Computer SciencePrice: Bought3
My c++ code is not working and I cant figure out why
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
int enumerate(const string [], int n, string target) {
if (n<0)
return -1;
int counter = 0;
for (int i=0; i<n; i++)
{
if (a[i]==target)
counter++;
}
return counter;
}
int locate(const string a[], int n, string target)
{
if (n<0)
return -1;
for (int i=0; i<n; i++)
{
if (a[i]==target)
return i;
}
return -1;
}
bool locateSequence(const string a[], int n, string target, int& begin, int& end) {
bool flag=false;
if (n<0)
return false;
for (int i=0; i<n; i++)
{
if (a[i]==target&&flag==false)
end=i;
}
return flag;
}
int locationOfMin(const string a[], int n)
{
int mindex=0;
if(n<=0)
return -1;
for (int i=0; i<n; i++)
{
if (a[i]<a[mIndex])
mIndex=i;
}
return mIndex;
}
int moveToEnd(string a[], int n, int pos){
if (n<0)
return-1;
for (int=pos; i<n-1; i++)
{
string temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
return pos;
}
int moveToBeginning(string a[], int n, int pos){
if (n<0)
return -1;
for (int i=pos; i>0; i==)
{
string temp=a(i-1);
a[i-1]=a[i];
a[i]=temp;
}
return pos;
}
int findDifference (const string a1[], int n1, const string a2[], int n2){
if (n1<o)
return -1;
if (n2<0)
return -1;
int temp=0;
for (int i=0; i<n1 && i<n2; i++)
{
if (a1[i] !=a2[i])
return i;
temp=i;
}
return temp;
}
int removeDups(string a[], int n)
{
if (n<0)
return -1;
int duplicate=0;
string duplicateString=a[0];
for (int i=1; i<n; i++)
{
if (a[i] == duplicateString)
a[i] = "duplicate";
else
duplicateString=a[i];
}
for (int i=0; i<n; i++)
{
while (a[i] !="duplicate"&& i<n-1)
{
i++;
}
for (int k=i+1; k<n; k++)
{
while (a[k] == "duplicate" && k<n-1)
{
k++;
}
string temp=a[k];
a[k]+a[i];
a[i]=temp;
break;
}
}
for (int i=0; i<n; i++)
{
if (a[i] !="duplicate")
duplicate++;
}
return duplicate;
}
bool subsequence (const string a1[], int n1, const string a2[], int n2)
{
if (n1<0)
return false;
if(n2<0)
return false;
int start=0;
bool flag=false;
for (int i=0; i<n2; i++)
{
for (int j=start; j<n1; j++)
{
if (a2[i] == a1[j])
{
flag=true;
start=j+1;
break;
}
}
if (flag==false)
return false;
flag=false;
}
return true;
}
int makeMerger(const string a1[], int n1, const string a2[], int n2, string result[], int max){
if (n1<0)
return -1;
if (n2<0)
return -1;
if (n1+n2>max)
{
return -1;
}
int i=0;
int j=0;
int r=0;
for (; i<n1 && j<n2; r++)
{
if (a1[i]<=a2[j])
result[r]=a1[i++];
else
result[r]=a2[j++];
}
if (i==n1)
{
for(; j<n2; r++)
{
result[r]=a1[i++];
}
}
return r;
}
int divide(string a[], int n, string divider)
{
if (n<0)
return -1;
int lessThanCounter=0;
for (int i=0; i<n; i++)
{
if (a[i]<divider)
lessThanCounter++;
}
int lessThan=0;
int greaterThan=lessThanCounter;
for (int i=0; i<lessThanCounter; i++)
{
if (a[i]=>divider)
{
string temp=a[greaterThan];
a[greaterThan]=a[i];
a[i]=temp;
i--;
greaterThan++;
}
}
return lessThanCounter;
}
int main()
{
string h[7] = { "samwell", "jon", "margaery", "daenerys", "", "tyrion", "margaery" };
assert(enumerate(h, 7, "margaery") == 2);
assert(enumerate(h, 7, "") == 1);
assert(enumerate(h, 7, "sansa") == 0);
assert(enumerate(h, 0, "margaery") == 0);
assert(locate(h, 7, "margaery") == 2);
assert(locate(h, 2, "margaery") == -1);
int bg;
int en;
assert(locateSequence(h, 7, "daenerys", bg, en) && bg == 3 && en == 3);
string g[4] = { "samwell", "jon", "daenerys", "tyrion" };
assert(locationOfMin(g, 4) == 2);
assert(findDifference(h, 4, g, 4) == 2);
assert(subsequence(h, 7, g, 4));
assert(moveToEnd(g, 4, 1) == 1 && g[1] == "daenerys" && g[3] == "jon");
string f[4] = { "daenerys", "tyrion", "margaery", "jon" };
assert(moveToBeginning(f, 4, 2) == 2 && f[0] == "margaery" && f[2] == "tyrion");
string e[5] = { "daenerys", "daenerys", "daenerys", "margaery", "margaery" };
assert(removeDups(e, 5) == 2 && e[1] == "margaery");
string x[4] = { "cersei", "jon", "jon", "sansa" };
string y[4] = { "daenerys", "jon", "margaery", "tyrion" };
string z[10];
assert(makeMerger(x, 4, y, 4, z, 10) == 8 && z[5] == "margaery");
assert(divide(h, 7, "margaery") == 3);
cout << "All tests succeeded" << endl;
}