#include <stdio.h>
//Data type, printf, scanf
/*
int main()
{
int a;
float b;
char c;
printf("input one int, one float, one char\n");
scanf("%d%f",&a,&b);
getchar();//enter key press
scanf("%c",&c);
printf("The inputs are: %d, %f, %c\n", a, b, c);
return 0;
}
*/
//ASCII code
/*
int main()
{
char chr;
printf("Input a character\n");
scanf("%c",&chr);
printf("You entered %c.\n",chr);
printf("ASCII value of %c is %d\n\n", chr, chr);
int intr;
printf("Input an integer\n");
scanf("%d",&intr);
printf("Character having ASCII value %d is %c\n",intr,intr);
return 0;
}
*/
//Arithmetic operators -> +, -, *, /, %
/*
int main()
{
int a = 9,b = 4;
float c;
c = a+b;
printf("a+b = %f \n",c);
c = a-b;
printf("a-b = %f \n",c);
c = a*b;
printf("a*b = %f \n",c);
c=9.0/4;
printf("a/b = %f in integer division \n",c);
c=(float)a/b;
printf("a/b = %f in floating point division \n",c);
c=a%b;
printf("Remainder when a divided by b = %f \n",c);
return 0;
}
*/
//Increment and Decrement Operators
int main()
{
int a = 10, b = 100;
int c;
c = ++b;
printf("c = %d, b = %d\n", c
, b
);
c = b++;
printf("c = %d, b = %d\n", c
, b
);
return 0;
}
//Assignment operators
/*
int main()
{
int a = 5, c;
c = a;
printf("c = %d \n", c);
c += a; // c = c+a
printf("c = %d \n", c);
c -= a; // c = c-a
printf("c = %d \n", c);
c *= a; // c = c*a
printf("c = %d \n", c);
c /= a; // c = c/a
printf("c = %d \n", c);
c %= a; // c = c%a
printf("c = %d \n", c);
return 0;
}
*/
//Relational operators
/*
int main()
{
int a = 5, b = 5, c = 10;
printf("%d == %d = %d \n", a, b, a == b); // true
printf("%d == %d = %d \n", a, c, a == c); // false
printf("%d > %d = %d \n", a, b, a > b); //false
printf("%d > %d = %d \n", a, c, a > c); //false
printf("%d < %d = %d \n", a, b, a < b); //false
printf("%d < %d = %d \n", a, c, a < c); //true
printf("%d != %d = %d \n", a, b, a != b); //false
printf("%d != %d = %d \n", a, c, a != c); //true
printf("%d >= %d = %d \n", a, b, a >= b); //true
printf("%d >= %d = %d \n", a, c, a >= c); //false
printf("%d <= %d = %d \n", a, b, a <= b); //true
printf("%d <= %d = %d \n", a, c, a <= c); //true
return 0;
}
*/
//sizeof operator
/*
int main()
{
int a;
float b;
double c;
char d;
printf("Size of int=%lu bytes\n",sizeof(a));
printf("Size of float=%lu bytes\n",sizeof(b));
printf("Size of double=%lu bytes\n",sizeof(c));
printf("Size of char=%lu byte\n",sizeof(d));
return 0;
}
*/
//Logical operators
/*
int main()
{
int a = 5, b = 5, c = 10, result;
printf("a = %d, b = %d, c = %d\n", a, b, c);
result = (a == b) && (c > b);
printf("(a == b) && (c > b) equals to %d \n", result);
result = (a == b) && (c < b);
printf("(a == b) && (c < b) equals to %d \n", result);
result = (a == b) || (c < b);
printf("(a == b) || (c < b) equals to %d \n", result);
result = (a != b) || (c < b);
printf("(a != b) || (c < b) equals to %d \n", result);
result = !(a != b);
printf("!(a == b) equals to %d \n", result);
result = !(a == b);
printf("!(a == b) equals to %d \n", result);
return 0;
}
*/
// We shall learn bitwise operator in a separate class hopefully in detail
//math.h library includes exp, log, pow, sine, cos etc functions
/*
#include <math.h>
int main ()
{
printf("Value 8.0 ^ 3 = %lf\n", pow(8.0, 3));
printf("Value 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
return(0);
}
*/
I2luY2x1ZGUgPHN0ZGlvLmg+CgovL0RhdGEgdHlwZSwgcHJpbnRmLCBzY2FuZgovKgppbnQgbWFpbigpCnsKICAgIGludCBhOwogICAgZmxvYXQgYjsKICAgIGNoYXIgYzsKICAgIHByaW50ZigiaW5wdXQgb25lIGludCwgb25lIGZsb2F0LCBvbmUgY2hhclxuIik7CiAgICBzY2FuZigiJWQlZiIsJmEsJmIpOwogICAgZ2V0Y2hhcigpOy8vZW50ZXIga2V5IHByZXNzCiAgICBzY2FuZigiJWMiLCZjKTsKICAgIHByaW50ZigiVGhlIGlucHV0cyBhcmU6ICVkLCAlZiwgJWNcbiIsIGEsIGIsIGMpOwogICAgcmV0dXJuIDA7Cn0KKi8KCgovL0FTQ0lJIGNvZGUKLyoKaW50IG1haW4oKQp7CiAgICBjaGFyIGNocjsKICAgIHByaW50ZigiSW5wdXQgYSBjaGFyYWN0ZXJcbiIpOwogICAgc2NhbmYoIiVjIiwmY2hyKTsKICAgIHByaW50ZigiWW91IGVudGVyZWQgJWMuXG4iLGNocik7CiAgICBwcmludGYoIkFTQ0lJIHZhbHVlIG9mICVjIGlzICVkXG5cbiIsIGNociwgY2hyKTsKCiAgICBpbnQgaW50cjsKICAgIHByaW50ZigiSW5wdXQgYW4gaW50ZWdlclxuIik7CiAgICBzY2FuZigiJWQiLCZpbnRyKTsKICAgIHByaW50ZigiQ2hhcmFjdGVyIGhhdmluZyBBU0NJSSB2YWx1ZSAlZCBpcyAlY1xuIixpbnRyLGludHIpOwogICAgcmV0dXJuIDA7Cn0KKi8KCgovL0FyaXRobWV0aWMgb3BlcmF0b3JzIC0+ICssIC0sICosIC8sICUKLyoKaW50IG1haW4oKQp7CiAgICBpbnQgYSA9IDksYiA9IDQ7CiAgICBmbG9hdCBjOwoKICAgIGMgPSBhK2I7CiAgICBwcmludGYoImErYiA9ICVmIFxuIixjKTsKCiAgICBjID0gYS1iOwogICAgcHJpbnRmKCJhLWIgPSAlZiBcbiIsYyk7CgogICAgYyA9IGEqYjsKICAgIHByaW50ZigiYSpiID0gJWYgXG4iLGMpOwoKICAgIGM9OS4wLzQ7CiAgICBwcmludGYoImEvYiA9ICVmIGluIGludGVnZXIgZGl2aXNpb24gXG4iLGMpOwogICAgYz0oZmxvYXQpYS9iOwogICAgcHJpbnRmKCJhL2IgPSAlZiBpbiBmbG9hdGluZyBwb2ludCBkaXZpc2lvbiBcbiIsYyk7CgogICAgYz1hJWI7CiAgICBwcmludGYoIlJlbWFpbmRlciB3aGVuIGEgZGl2aWRlZCBieSBiID0gJWYgXG4iLGMpOwoKICAgIHJldHVybiAwOwp9CiovCgovL0luY3JlbWVudCBhbmQgRGVjcmVtZW50IE9wZXJhdG9ycwoKaW50IG1haW4oKQp7CiAgICBpbnQgYSA9IDEwLCBiID0gMTAwOwogICAgaW50IGM7CgogICAgcHJpbnRmKCIrK2EgPSAlZCBcbiIsICsrYSk7CiAgICBwcmludGYoImEgPSAlZCBcblxuIiwgYSk7CgogICAgcHJpbnRmKCItLWIgPSAlZCBcbiIsIC0tYik7CiAgICBwcmludGYoImIgPSAlZCBcblxuIiwgYik7CgogICAgcHJpbnRmKCJhKysgPSAlZCBcbiIsIGErKyk7CiAgICBwcmludGYoImEgPSAlZCBcblxuIiwgYSk7CgogICAgcHJpbnRmKCJiKysgPSAlZCBcbiIsIGIrKyk7CiAgICBwcmludGYoImIgPSAlZCBcblxuIiwgYik7CgogICAgYyA9ICsrYjsKICAgIHByaW50ZigiYyA9ICVkLCBiID0gJWRcbiIsIGMsIGIpOwoKICAgIGMgPSBiKys7CiAgICBwcmludGYoImMgPSAlZCwgYiA9ICVkXG4iLCBjLCBiKTsKCiAgICByZXR1cm4gMDsKfQoKCgovL0Fzc2lnbm1lbnQgb3BlcmF0b3JzCi8qCmludCBtYWluKCkKewogICAgaW50IGEgPSA1LCBjOwoKICAgIGMgPSBhOwogICAgcHJpbnRmKCJjID0gJWQgXG4iLCBjKTsKCiAgICBjICs9IGE7IC8vIGMgPSBjK2EKICAgIHByaW50ZigiYyA9ICVkIFxuIiwgYyk7CgogICAgYyAtPSBhOyAvLyBjID0gYy1hCiAgICBwcmludGYoImMgPSAlZCBcbiIsIGMpOwoKICAgIGMgKj0gYTsgLy8gYyA9IGMqYQogICAgcHJpbnRmKCJjID0gJWQgXG4iLCBjKTsKCiAgICBjIC89IGE7IC8vIGMgPSBjL2EKICAgIHByaW50ZigiYyA9ICVkIFxuIiwgYyk7CgogICAgYyAlPSBhOyAvLyBjID0gYyVhCiAgICBwcmludGYoImMgPSAlZCBcbiIsIGMpOwoKICAgIHJldHVybiAwOwp9CiovCgovL1JlbGF0aW9uYWwgb3BlcmF0b3JzCi8qCmludCBtYWluKCkKewogICAgaW50IGEgPSA1LCBiID0gNSwgYyA9IDEwOwoKICAgIHByaW50ZigiJWQgPT0gJWQgPSAlZCBcbiIsIGEsIGIsIGEgPT0gYik7IC8vIHRydWUKICAgIHByaW50ZigiJWQgPT0gJWQgPSAlZCBcbiIsIGEsIGMsIGEgPT0gYyk7IC8vIGZhbHNlCgogICAgcHJpbnRmKCIlZCA+ICVkID0gJWQgXG4iLCBhLCBiLCBhID4gYik7IC8vZmFsc2UKICAgIHByaW50ZigiJWQgPiAlZCA9ICVkIFxuIiwgYSwgYywgYSA+IGMpOyAvL2ZhbHNlCgoKICAgIHByaW50ZigiJWQgPCAlZCA9ICVkIFxuIiwgYSwgYiwgYSA8IGIpOyAvL2ZhbHNlCiAgICBwcmludGYoIiVkIDwgJWQgPSAlZCBcbiIsIGEsIGMsIGEgPCBjKTsgLy90cnVlCgoKICAgIHByaW50ZigiJWQgIT0gJWQgPSAlZCBcbiIsIGEsIGIsIGEgIT0gYik7IC8vZmFsc2UKICAgIHByaW50ZigiJWQgIT0gJWQgPSAlZCBcbiIsIGEsIGMsIGEgIT0gYyk7IC8vdHJ1ZQoKCiAgICBwcmludGYoIiVkID49ICVkID0gJWQgXG4iLCBhLCBiLCBhID49IGIpOyAvL3RydWUKICAgIHByaW50ZigiJWQgPj0gJWQgPSAlZCBcbiIsIGEsIGMsIGEgPj0gYyk7IC8vZmFsc2UKCgogICAgcHJpbnRmKCIlZCA8PSAlZCA9ICVkIFxuIiwgYSwgYiwgYSA8PSBiKTsgLy90cnVlCiAgICBwcmludGYoIiVkIDw9ICVkID0gJWQgXG4iLCBhLCBjLCBhIDw9IGMpOyAvL3RydWUKCiAgICByZXR1cm4gMDsKfQoqLwoKLy9zaXplb2Ygb3BlcmF0b3IKLyoKaW50IG1haW4oKQp7CiAgICBpbnQgYTsKICAgIGZsb2F0IGI7CiAgICBkb3VibGUgYzsKICAgIGNoYXIgZDsKICAgIHByaW50ZigiU2l6ZSBvZiBpbnQ9JWx1IGJ5dGVzXG4iLHNpemVvZihhKSk7CiAgICBwcmludGYoIlNpemUgb2YgZmxvYXQ9JWx1IGJ5dGVzXG4iLHNpemVvZihiKSk7CiAgICBwcmludGYoIlNpemUgb2YgZG91YmxlPSVsdSBieXRlc1xuIixzaXplb2YoYykpOwogICAgcHJpbnRmKCJTaXplIG9mIGNoYXI9JWx1IGJ5dGVcbiIsc2l6ZW9mKGQpKTsKICAgIHJldHVybiAwOwp9CiovCgovL0xvZ2ljYWwgb3BlcmF0b3JzCi8qCmludCBtYWluKCkKewoKICAgIGludCBhID0gNSwgYiA9IDUsIGMgPSAxMCwgcmVzdWx0OwoKICAgIHByaW50ZigiYSA9ICVkLCBiID0gJWQsIGMgPSAlZFxuIiwgYSwgYiwgYyk7CgogICAgcmVzdWx0ID0gKGEgPT0gYikgJiYgKGMgPiBiKTsKICAgIHByaW50ZigiKGEgPT0gYikgJiYgKGMgPiBiKSBlcXVhbHMgdG8gJWQgXG4iLCByZXN1bHQpOwoKICAgIHJlc3VsdCA9IChhID09IGIpICYmIChjIDwgYik7CiAgICBwcmludGYoIihhID09IGIpICYmIChjIDwgYikgZXF1YWxzIHRvICVkIFxuIiwgcmVzdWx0KTsKCiAgICByZXN1bHQgPSAoYSA9PSBiKSB8fCAoYyA8IGIpOwogICAgcHJpbnRmKCIoYSA9PSBiKSB8fCAoYyA8IGIpIGVxdWFscyB0byAlZCBcbiIsIHJlc3VsdCk7CgogICAgcmVzdWx0ID0gKGEgIT0gYikgfHwgKGMgPCBiKTsKICAgIHByaW50ZigiKGEgIT0gYikgfHwgKGMgPCBiKSBlcXVhbHMgdG8gJWQgXG4iLCByZXN1bHQpOwoKICAgIHJlc3VsdCA9ICEoYSAhPSBiKTsKICAgIHByaW50ZigiIShhID09IGIpIGVxdWFscyB0byAlZCBcbiIsIHJlc3VsdCk7CgogICAgcmVzdWx0ID0gIShhID09IGIpOwogICAgcHJpbnRmKCIhKGEgPT0gYikgZXF1YWxzIHRvICVkIFxuIiwgcmVzdWx0KTsKCiAgICByZXR1cm4gMDsKfQoqLwoKLy8gV2Ugc2hhbGwgbGVhcm4gYml0d2lzZSBvcGVyYXRvciBpbiBhIHNlcGFyYXRlIGNsYXNzIGhvcGVmdWxseSBpbiBkZXRhaWwKCgovL21hdGguaCBsaWJyYXJ5IGluY2x1ZGVzIGV4cCwgbG9nLCBwb3csIHNpbmUsIGNvcyBldGMgZnVuY3Rpb25zCi8qCiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgbWFpbiAoKQp7CiAgIHByaW50ZigiVmFsdWUgOC4wIF4gMyA9ICVsZlxuIiwgcG93KDguMCwgMykpOwoKICAgcHJpbnRmKCJWYWx1ZSAzLjA1IF4gMS45OCA9ICVsZiIsIHBvdygzLjA1LCAxLjk4KSk7CgogICByZXR1cm4oMCk7Cn0KKi8KCgoK