Posts C/C++ Tricky Programs (Set 1)
Post
Cancel

C/C++ Tricky Programs (Set 1)


  • Print text within double quotes (” “)

1
2
3
4
5
6
7
8
// CPP program to print double quotes 
#include<iostream> 
  
int main() 
{ 
   std::cout << "\"Hello World\""; 
   return 0; 
} 

Output

1
"Hello World"

  • To check if two numbers are equal without using arithmetic operators or comparison operators.

    The simplest solution for this is using Bitwise XOR operator (^). We know that, for two equal numbers XOR operator returns 0. We will use this trick to solve this problem.
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h> 
  
int main() 
{ 
   int x = 10; 
   int y = 10; 
   if ( !(x ^ y) ) 
      printf(" x is equal to y "); 
   else 
      printf(" x is not equal to y "); 
   return 0; 
} 

Output

1
x is equal to y

  • To Swap the values of two variables without using any extra variable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// C++ program to check if two numbers are equal  
#include<iostream> 
  
int main() 
{ 
   int x = 10; 
   int y = 70; 
  
   x = x + y; 
   y = x - y; 
   x = x - y; 
  
   cout << "X : " << x << "\n"; 
   cout << "Y : " << y << "\n";  
     
   return 0; 
} 

Output

1
2
X : 70
Y : 10

  • Print all natural numbers upto N without using semi-colon. We use the idea of recursively calling main function.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// CPP program to print all natural numbers upto  
// N without using semi-colon 
#include<iostream> 
  
using namespace std; 
int N = 10; 
  
int main() 
{ 
  static int x = 1; 
  if (cout << x << " " && x++ < N && main()) 
  { } 
  return 0; 
} 

Output

1
1 2 3 4 5 6 7 8 9 10 

  • Program to find Maximum and minimum of two numbers without using any loop or condition.

    The simplest trick is-
1
2
3
4
5
6
7
8
9
10
11
12
// CPP program to find maximum and minimum of 
// two numbers without using loop and any 
// condition. 
#include<bits/stdc++.h> 
  
int main () 
{ 
   int a = 15, b = 20; 
   printf("max = %d\n", ((a + b) + abs(a - b)) / 2); 
   printf("min = %d", ((a + b) - abs(a - b)) / 2); 
   return 0; 
} 

Output

1
2
max = 20
min = 15

  • Print the maximum value of an unsigned int using One’s Compliment (~) Operator in C.

    Here is a trick to find maximum value of an unsigned int using one’s compliment operator:
1
2
3
4
5
6
7
8
9
10
11
12
// C program to print maximum value of 
// unsigned int. 
#include<stdio.h> 
  
int main() 
{ 
   unsigned int max; 
   max = 0; 
   max = ~max; 
   printf("Max value : %u ",  max); 
  return 0; 
}

  • To find sum of two integers without using ‘+’ operator.

    This is a very easy mathematics trick. We know that a + b = – (-a-b). So this will work as a trick for us. The simplest trick is-
1
2
3
4
5
6
7
8
9
10
11
12
13
// CPP program to print sum of two integers 
// withtout + 
#include<iostream> 
  
using namespace std; 
int main() 
{ 
  int a = 5; 
  int b = 5; 
  int sum = -( -a-b ); 
  cout << sum; 
  return 0; 
} 

Output

1
10

  • Program to verifies the condition inside if block.

    This is a very easy mathematics trick. We know that a + b = – (-a-b). So this will work as a trick for us. The simplest trick is-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// CPP program to verifies the condition inside if block 
// It just verifies the condition inside if block, 
// i.e., cout << "geeks" which returns a non-zero value, 
// !(non-zero value) is false, hence it executes else 
// Hence technically it only executes else block 
#include<iostream> 
  
using namespace std; 
int main() 
{ 
    if (!(cout << "Hello")) 
    cout <<" lol "; 
    else
    cout << " World "; 
      
    return 0; 
} 

Output

1
Hello World

  • Program to divide an integer by 4 without using ‘/’ operator.

    One of the most efficient way to divide an integer by 4 is to use right shift operator (“>>”).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// CPP program to divide a number by 4 
// without using '/' 
#include<iostream> 
  
using namespace std; 
int main() 
{ 
   int n = 4; 
   n = n >> 2; 
   cout << n; 
   return 0; 
} 

Output

1
1

  • Program to check endianness of the computer.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// C program to find if machine is little 
// endian or big endian. 
#include <stdio.h> 
  
int main() 
{ 
   unsigned int n = 1; 
   char *c = (char*)&n; 
   if (*c) 
       printf("LITTLE ENDIAN"); 
   else
       printf("BIG ENDIAN"); 
   return 0; 
} 


Source

GeeksforGeeks
Quora
Software Testing Help
Tutorialspoint
This post is licensed under Ravi Jain by the author.