Skip to content

Instantly share code, notes, and snippets.

@not7cd
Last active April 4, 2018 14:26
Show Gist options
  • Save not7cd/be0503e7d596e13860ffc56df33f4b09 to your computer and use it in GitHub Desktop.
Save not7cd/be0503e7d596e13860ffc56df33f4b09 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>
//USING C98 standard
const float PI = 3.14;
int my_abs(int x) {
if (x >= 0) return x;
else return -x;
}
float my_circle_area(float r) {
return PI * r * r;
}
float my_cylinder_volume(float r, float h) {
return h * my_circle_area(r);
}
void lower_to_upper(char* s) {
for (int i = strlen(s) - 1; i >= 0; i--)
s[i] = toupper(s[i]);
return;
}
void change(char* s) {
for (int i = strlen(s) - 1; i >= 0; i--)
switch(s[i]) {
case 'A': case 'a':
case 'B': case 'b':
case 'C': case 'c':
s[i] = 'X';
break;
case 'D': case 'd':
case 'E': case 'e':
case 'F': case 'f':
s[i] = 'Y';
break;
}
return;
}
long fac(int n) {
if (n <= 1) return 1;
return n * fac(n - 1);
}
int main()
{
// tests
assert(my_abs(-6) == 6);
assert(my_abs(6) == 6);
assert(my_abs(0) == 0);
assert(fac(0) == 1);
assert(fac(1) == 1);
assert(fac(2) == 2);
assert(fac(3) == 6);
assert(fac(4) == 24);
assert(my_circle_area(0) == 0);
assert(my_circle_area(-1) == PI);
assert(my_circle_area(1) == PI);
assert(my_circle_area(2) == 4 * PI);
assert(my_cylinder_volume(0, 0) == 0);
assert(my_cylinder_volume(1, 2) == 2 * PI);
assert(my_cylinder_volume(2, 2) == 8 * PI);
char s1[] = "";
lower_to_upper(s1);
assert(strcmp(s1, "") == 0);
char s2[] = "ASDFasdf";
lower_to_upper(s2);
assert(strcmp(s2, "ASDFASDF") == 0);
char s3[] = "";
change(s3);
assert(strcmp(s3, "") == 0);
char s4[] = "ASDFasdf";
change(s4);
assert(strcmp(s4, "XSYYXsYY") == 0);
printf("All tests executed\n");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment