CodeGraderBench/CodeGraderBench huggingface dataset:
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
using namesspace std;

int string_compare (char *first, char *second) 
{
int i= 0;
while (true){
if (first[i] < second[i]) return 1;
if (first[i] > second[i]) return -1;
if (first[i] == 0 && second[i] == 0) return 0;
i++;
}
return 0;
}

void string_sort(int *A, int *B1, int *B2, int n1, int n2){
int cB1, cB2, cA; cB1 = cB2 = cA = 0; 
while (cB1 < n1 && cB2 < n2){
	if (B1[cB1] < B2[cB2]) A[cA++] = B1[cB1++]; 
		else if (B1[cB1] > B2[cB2]) A[cA++] = B2[cB2++];
		else { A[cA++] = B1[cB1++]; A[cA++] = B2[cB2++];} 
}


while(cB1 < n1) A[cA++] = B1[cB1++];
while(cB2 < n2) A[cA++] = B2[cB2++];
}
int main(){ 
char name[first][second];
int count=1;
while (cin.getline(int[count++], 20)); 
for (int i=0; i<count; i++)
}
int string_length (char *first, char *second)
{
int L=0;
while (x[L] != '\0')
L++;
return L;
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int string_compare(string *c,string *b1,string *b2,int n1,int n2){

int ca,cb1,cb2;ca=cb1=cb2=0;
while(cb1<n1&&cb2<n2){
			if(b1[cb1]<b2[cb2]){c[ca++]=b1[cb1++];return 1;}
			else if(b1[cb1]>b2[cb2]){c[ca++]=b2[cb2++];return -1;}
			else{c[ca++]=b1[cb1++];c[ca++]=b2[cb2++];return 0;}
			}
	while(cb1<n1){c[ca++]=b1[cb1++];}
	while(cb2<n2){c[ca++]=b2[cb2++];}
return 2;
}


string *string_sort(string *c,int n){
	if(n>1)
	{	
		string b1[n/2],b2[n-(n/2)];
		for(int i=0;i<n/2;i++){b1[i]=c[i];}
		for(int i=0;i<n-(n/2);i++){b2[i]=c[i+(n/2)];}
		string_sort(b1,n/2);string_sort(b2,n-(n/2));
		string_compare(c,b1,b2,n/2,n-(n/2));
	}

//for(int i=0;i<n;i++){cout<<a[i]<<endl;}

return c;

}


int main(){
int n;
cin>>n;
string c[n];

for(int i=0;i<n;i++){cin>>c[i];}
string_sort(c,n);
for(int i=0;i<n;i++){cout<<c[i]<<endl;}




}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
using namespace std;
int string_compare(char  str1[],char  str2[]){
int i = 0;
while (true){
if (str1[i] == 0 && str2[i] == 0) return 0;
if (str1[i] == 0) return -1;
         if (str2[i] == 0) return  +1;
if (str1[i] < str2[i]) return  -1;
if (str1[i] > str2[i]) return  +1;
i++;
}
return 0;
}	

void string_sort(char ARR[][100],int start,int end){
	int mid=(start+end)/2;
	
       }

int main(){ 
int n;
cin>>n;
char arr[100][100];
for(int i=0;i<n;i++){
	cin>>arr[i];
}}
































,iostream>

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<simplecpp>
#define MAX 100

int string_compare (char *a, char * b){
	int i = 0;
	while (true){
		if (a[i] == 0 && b[i] == 0) return 0;
		if (a[i] == 0) return 1;
		if (b[i] == 0) return -1;
		if (a[i] < b[i]) return +1;
		if (a[i] > b[i]) return -1;
		i++;
}
		return 0;
}
void string_sort(char a[MAX][MAX]){
char c[MAX][MAX];
	for(int i=0;i<15;i++){
		int r= string_compare(a[i],a[i+1]);
		if(r==-1){
			for(int j=0;j<MAX;j++){
				c[i][j]=a[i][j];
				a[i][j]=a[i+1][j];
				a[i+1][j]=c[i][j];
			}	}
	}
}
main_program{
	int n;
	cin>>n;
	char c[MAX][MAX];
	char m[MAX][MAX];
	for(int i=0;i<n;i++){
		cin>>c[i];
	}
	string_sort(c,m);
	for(int i=0;i<n;i++){
		cout<<c[i]<<endl;
	}
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
using namespace std;

// Returns the sum f(0) + f(1) + f(2) + . . . + f(n-1):                         
int sum(int (*pf)(int k), int n) {
int s = 0;
for (int i = 1; i <= n; i++)
s += (*pf) (i);
return s;
}
int square(int k) {
return k*k;
}
int cube(int k){
return k*k*k;
}

int main () {
cout << sum(square,4) << endl; //1+4+9+16                                       
cout << sum(cube,4) << endl;
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
using namespace std;

void swap(string A[15],int i,int j){
	string temp=A[i];
	A[i]=A[j];
	A[j]=temp;
}
int string_compare(string q,string w){
int i=0;
while (true){
if (q[i] == 0 && w[i] == 0) return 0;
if (q[i] == 0) return -1;
if (w[i] == 0) return +1;
if (q[i] < w[i]) return -1;
if (q[i] > w[i]) return +1;
i++;
}
}

void string_sort(string A[15],int n){
	for (int i = 0; i < n; i++)
	{
		for (int j = i+1; j < n; j++)
		{
			string q=A[i],w=A[j];
			if(string_compare(q,w)==+1) swap(A,i,j);
		}
	}
	for (int i = 0; i < n; i++)
	{
		cout<<A[i]<<endl;
	}
}

int main(){
int n;
cin>>n;
string A[15];
for(int i=0;i<n;i++){
    cin>>A[i];
}
string_sort(A,n);
return 0;
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<simplecpp>
#include<cstring>
#define MAX 12
void merge(char name[][MAX],char *B1,char *B2,int n1,int n2){
int cB1,cB2,cA;
cB1=cB2=cA=0;
while(cB1<n1 && cB2<n2){
if(B1[cB1]<B2[cB2]) name[cA++]=B1[cB1++];
else if(B1[cB1]>B2[cB2]) name[cA++]=B2[cB2++];
else{name[cA++]=B1[cB1++]; name[cA++]=B2[cB2++];}
}
while(cB1<n1) name[cA++]=B1[cB1++];
while(cB2<n2) name[cA++]=B2[cB2++];
}
void mergesort(char *name, int n){
if(n>1){
char B1[n/2], B2[n-n/2];
for(int i=0;i<n/2;i++){B1[i]=name[i];}
for(int i=n/2;i<n;i++){B2[i-n/2]=name[i];}
mergesort(B1,n/2);
mergesort(B2,n-n/2);
merge(name,B1,B2,n/2,n-n/2);
}
}
int main(){
int n;
cin>>n;
char name[n][12];
for(int i=0;i<n;i++){
cin.getline(name[i],12);
}
mergesort(name,n);
for(int i=0;i<n;i++){
cout<<name[i]<<endl;
}
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B
Problem: Write a C++ program to collect a positive integer n from the user, and then collect n character strings from the user (containing only lower case alphabets and no other characters, not even spaces). The strings need not be of equal length but the maximum length of any string should be 11. The strings should be stored in an appropriate 2D array. Your program should then include the following:

A function string_compare which takes two strings as input and returns 1 if the first string appears before the second string in alphabetical order, -1 if the second string appears before the first in alphabetical order, and 0 if the two strings are equal to each other. Do not use the inbuilt strcmp function.
A function string_sort which sorts the character strings using the mergesort algorithm taught in class. You are recommended to write a recursive implementation. You will automatically lose 50% of the marks for this program if you implemented the sorting within main.
Your program should then print out the strings in sorted alphabetical order, starting from the first to the last. Feel free to refer to the lecture slides for help.

Input Format
integer n, and a set of n character strings


Output Format
Print out the strings in the suggested order, one string on a new line


Constraints
n is a positive integer, n <= 15
For ease of display of the output, the maximum length of any of the strings should be 11, excluding the NULL character
The character strings should contain only lower case alphabets


Sample input and output




Input

Output

4

zebra

lion

tiger

monkey



lion

monkey

tiger

zebra







Note:  

Do not write any C++ statements for printing general messages. For example, the following should NOT be present in your program: 
cout << "Enter a number:",  
cout << "The computed answer is", etc.  


cout should be used to print only the computed final output. In addition, do not print unnecessary spaces unless specified in the program.

Student submission:
#include<iostream>
using namespace std;
int string_compare (char *a, char *b){
int i = 0;
while (true){
if (a[i] == 0 && b[i] == 0) return 0;
if (a[i] == 0) return -1;
if (second[i] == 0) return +1;
if (a[i] < b[i]) return -1;
if (a[i] > b[i]) return +1;
i++;
}
return 0;
}
void string_sort(int *A, int n){
if (n > 1){
		int B1[n/2], B2[n-n/2]; 
for (int i=0;i<n/2;i++) { B1[i] = A[i]; }
for (int i=n/2;i<n;i++) { B2[i-n/2] = A[i]; }
	string_sort(B1,n/2); string_sort(B2,n-n/2);
		merge(A,B1,B2,n/2,n-n/2);
}
}
int main(){
int n;
char a, b;
cin>>n;
char name[n][11];
int count=0;
while (cin.getline(name[count++], 11));
for (int i=0; i<count; i++)
cout << "\t" << i << name[i] << endl;
cout<<string_compare(a,b);
}

Grading criterion: Placeholder for extra marks to be given for any reason
Rating A: Implemented merge sort recursively, Modularity, Extra Functions Defined, some corrective marks for failed testcases
Rating B: No reason for extra marks
Rating C: 0
Rating D: 0
Assigned grade: B