google-site-verification: google61fe8ba583a51912.html
Arithmetic Operations in C: Complete Guide

Introduction to Arithmetic Operations in C

C provides a comprehensive set of arithmetic operators for performing mathematical calculations. Understanding these operations is fundamental to C programming, from simple calculations to complex mathematical computations.


Core Arithmetic Operators

Basic Arithmetic Operators

OperatorNameDescriptionExample
+AdditionAdds two operandsa + b
-SubtractionSubtracts second operand from firsta - b
*MultiplicationMultiplies two operandsa * b
/DivisionDivides first operand by seconda / b
%ModulusReturns remainder of divisiona % b

Basic Arithmetic Examples

#include <stdio.h> int main() { int a = 10, b = 3; printf("a = %d, b = %d\n", a, b); printf("Addition (a + b) = %d\n", a + b); printf("Subtraction (a - b) = %d\n", a - b); printf("Multiplication (a * b) = %d\n", a * b); printf("Division (a / b) = %d\n", a / b); // Integer division printf("Modulus (a %% b) = %d\n", a % b); // Remainder return 0; }

Output:

a = 10, b = 3 Addition (a + b) = 13 Subtraction (a - b) = 7 Multiplication (a * b) = 30 Division (a / b) = 3 Modulus (a % b) = 1

Integer vs Floating-Point Arithmetic

Integer Division vs Floating-Point Division

#include <stdio.h> int main() { int a = 10, b = 3; float x = 10.0, y = 3.0; printf("=== Integer Division ===\n"); printf("10 / 3 = %d\n", 10 / 3); // Result: 3 printf("10 %% 3 = %d\n\n", 10 % 3); // Result: 1 printf("=== Floating-Point Division ===\n"); printf("10.0 / 3.0 = %.2f\n", 10.0 / 3.0); // Result: 3.33 printf("10.0 / 3 = %.2f\n", 10.0 / 3); // Mixed types printf("=== Type Casting ===\n"); printf("(float)10 / 3 = %.2f\n", (float)a / b); // Explicit casting printf("10 / (float)3 = %.2f\n", a / (float)b); // Explicit casting return 0; }

Output:

=== Integer Division === 10 / 3 = 3 10 % 3 = 1 === Floating-Point Division === 10.0 / 3.0 = 3.33 10.0 / 3 = 3.33 === Type Casting === (float)10 / 3 = 3.33 10 / (float)3 = 3.33

Operator Precedence and Associativity

Precedence Table (Highest to Lowest)

LevelOperatorDescriptionAssociativity
1()ParenthesesLeft to Right
2++ --Postfix increment/decrementLeft to Right
3++ -- + - ! ~Unary operatorsRight to Left
4* / %MultiplicativeLeft to Right
5+ -AdditiveLeft to Right
6<< >>Bitwise shiftLeft to Right
7< <= > >=RelationalLeft to Right
8== !=EqualityLeft to Right
9&Bitwise ANDLeft to Right
10^Bitwise XORLeft to Right
11|Bitwise ORLeft to Right
12&&Logical ANDLeft to Right
13||Logical ORLeft to Right
14?:Ternary conditionalRight to Left
15= += -= etc.AssignmentRight to Left
16,CommaLeft to Right

Precedence Examples

#include <stdio.h> int main() { int a = 5, b = 3, c = 2; int result; printf("=== Operator Precedence ===\n\n"); // Multiplication before addition result = a + b * c; printf("a + b * c = %d (b * c first)\n", result); // Parentheses override precedence result = (a + b) * c; printf("(a + b) * c = %d\n", result); // Complex expression result = a * b + c / 2 - a % b; printf("a * b + c / 2 - a %% b = %d\n", result); // Step-by-step evaluation printf("\n=== Step-by-step ===\n"); printf("Expression: 5 + 3 * 2 - 8 / 4\n"); printf("Step 1: 5 + 6 - 8 / 4 (3 * 2 = 6)\n"); printf("Step 2: 5 + 6 - 2 (8 / 4 = 2)\n"); printf("Step 3: 11 - 2 (5 + 6 = 11)\n"); printf("Result: 9\n"); return 0; }

Compound Assignment Operators

Assignment Operators Table

OperatorExampleEquivalent to
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b

Compound Assignment Examples

#include <stdio.h> int main() { int x = 10; printf("Initial value: x = %d\n", x); x += 5; // x = x + 5 printf("After x += 5: %d\n", x); x -= 3; // x = x - 3 printf("After x -= 3: %d\n", x); x *= 2; // x = x * 2 printf("After x *= 2: %d\n", x); x /= 4; // x = x / 4 printf("After x /= 4: %d\n", x); x %= 3; // x = x % 3 printf("After x %%= 3: %d\n", x); return 0; }

Output:

Initial value: x = 10 After x += 5: 15 After x -= 3: 12 After x *= 2: 24 After x /= 4: 6 After x %= 3: 0

Increment and Decrement Operators

Prefix vs Postfix

#include <stdio.h> int main() { int a = 5, b = 5; int result1, result2; printf("=== Prefix vs Postfix ===\n\n"); // Postfix: use then increment result1 = a++; printf("Postfix (a++):\n"); printf(" result = %d (original value used)\n", result1); printf(" a now = %d (after increment)\n", a); printf("\n"); // Prefix: increment then use result2 = ++b; printf("Prefix (++b):\n"); printf(" result = %d (incremented value used)\n", result2); printf(" b now = %d\n", b); printf("\n=== In Expressions ===\n"); int x = 5, y = 5; int z = x++ + ++y; printf("x = 5, y = 5\n"); printf("x++ + ++y = %d\n", z); printf("After: x = %d, y = %d\n", x, y); return 0; }

Output:

=== Prefix vs Postfix === Postfix (a++): result = 5 (original value used) a now = 6 (after increment) Prefix (++b): result = 6 (incremented value used) b now = 6 === In Expressions === x = 5, y = 5 x++ + ++y = 11 After: x = 6, y = 6

Bitwise Arithmetic Operations

Bitwise Operators

OperatorNameDescription
&ANDBitwise AND
|ORBitwise OR
^XORBitwise XOR
~NOTBitwise complement
<<Left shiftShift bits left
>>Right shiftShift bits right

Bitwise Examples

#include <stdio.h> void printBinary(unsigned int n) { for (int i = 31; i >= 0; i--) { printf("%d", (n >> i) & 1); if (i % 8 == 0) printf(" "); } printf("\n"); } int main() { unsigned int a = 60; // 0011 1100 unsigned int b = 13; // 0000 1101 printf("a = %d (", a); printBinary(a); printf("b = %d (", b); printBinary(b); printf("\n=== Bitwise Operations ===\n\n"); printf("a & b = %3d (", a & b); printBinary(a & b); printf("a | b = %3d (", a | b); printBinary(a | b); printf("a ^ b = %3d (", a ^ b); printBinary(a ^ b); printf("~a = %3d (", ~a); printBinary(~a); printf("a << 2 = %3d (", a << 2); printBinary(a << 2); printf("a >> 2 = %3d (", a >> 2); printBinary(a >> 2); return 0; }

Output:

a = 60 (00111100 00000000 00000000 00000000 ) b = 13 (00001101 00000000 00000000 00000000 ) === Bitwise Operations === a & b = 12 (00001100 00000000 00000000 00000000 ) a | b = 61 (00111101 00000000 00000000 00000000 ) a ^ b = 49 (00110001 00000000 00000000 00000000 ) ~a = -61 (11000011 11111111 11111111 11111111 ) a << 2 = 240 (11110000 00000000 00000000 00000000 ) a >> 2 = 15 (00001111 00000000 00000000 00000000 )

Type Conversion (Casting)

Implicit vs Explicit Conversion

#include <stdio.h> int main() { printf("=== Implicit Type Conversion ===\n\n"); int i = 10; float f = 3.14; double d = 5.7; // Integer + float -> float float result1 = i + f; printf("int + float: %d + %.2f = %.2f\n", i, f, result1); // Integer + double -> double double result2 = i + d; printf("int + double: %d + %.1f = %.1f\n", i, d, result2); // All mixed double result3 = i + f + d; printf("int + float + double = %.2f\n\n", result3); printf("=== Explicit Type Conversion (Casting) ===\n\n"); int x = 10, y = 3; // Without casting float div1 = x / y; printf("Without casting: %d / %d = %.2f\n", x, y, div1); // With casting float div2 = (float)x / y; printf("With casting: (float)%d / %d = %.2f\n", x, y, div2); // Multiple casts float div3 = (float)x / (float)y; printf("Both cast: (float)%d / (float)%d = %.2f\n", x, y, div3); return 0; }

Common Arithmetic Functions

Math Library Functions

#include <stdio.h> #include <math.h> int main() { double x = 25.0; double y = 3.0; printf("=== Math Library Functions ===\n\n"); printf("x = %.2f, y = %.2f\n\n", x, y); printf("sqrt(%.2f) = %.2f\n", x, sqrt(x)); printf("pow(%.2f, %.2f) = %.2f\n", y, y, pow(y, y)); printf("exp(%.2f) = %.2f\n", y, exp(y)); printf("log(%.2f) = %.2f\n", x, log(x)); printf("log10(%.2f) = %.2f\n", x, log10(x)); printf("fabs(%.2f) = %.2f\n", -x, fabs(-x)); printf("ceil(%.2f) = %.2f\n", 3.14, ceil(3.14)); printf("floor(%.2f) = %.2f\n", 3.14, floor(3.14)); printf("round(%.2f) = %.2f\n", 3.5, round(3.5)); printf("\n=== Trigonometric Functions ===\n"); double angle = 45.0; double rad = angle * M_PI / 180.0; printf("sin(%.0f°) = %.4f\n", angle, sin(rad)); printf("cos(%.0f°) = %.4f\n", angle, cos(rad)); printf("tan(%.0f°) = %.4f\n", angle, tan(rad)); return 0; }

Note: Compile with -lm flag: gcc program.c -o program -lm


Integer Overflow and Underflow

Understanding Overflow

#include <stdio.h> #include <limits.h> int main() { printf("=== Integer Overflow ===\n\n"); int max = INT_MAX; int min = INT_MIN; printf("INT_MAX = %d\n", max); printf("INT_MIN = %d\n\n", min); // Overflow printf("INT_MAX + 1 = %d (overflow)\n", max + 1); printf("INT_MIN - 1 = %d (underflow)\n\n", min - 1); // Unsigned overflow (wraps around) unsigned int umax = UINT_MAX; printf("UINT_MAX = %u\n", umax); printf("UINT_MAX + 1 = %u (wraps to 0)\n\n", umax + 1); printf("=== Safe Arithmetic ===\n\n"); int a = 2000000000; int b = 2000000000; // Dangerous int dangerous = a + b; printf("%d + %d = %d (may overflow)\n", a, b, dangerous); // Safe check if (a > INT_MAX - b) { printf("Overflow would occur!\n"); } else { int safe = a + b; printf("Safe result: %d\n", safe); } return 0; }

Advanced Arithmetic Techniques

Efficient Multiplication and Division by Powers of 2

#include <stdio.h> int main() { int x = 42; printf("x = %d\n\n", x); // Multiplication by 2 (faster with shift) printf("x * 2 = %d\n", x * 2); printf("x << 1 = %d (shift)\n\n", x << 1); // Division by 2 (faster with shift) printf("x / 2 = %d\n", x / 2); printf("x >> 1 = %d (shift)\n\n", x >> 1); // Multiplication by 4 printf("x * 4 = %d\n", x * 4); printf("x << 2 = %d (shift)\n\n", x << 2); // Check if number is odd/even printf("x %% 2 = %d (remainder)\n", x % 2); printf("x & 1 = %d (bitwise AND)\n\n", x & 1); // Swap without temporary variable int a = 5, b = 3; printf("Before swap: a = %d, b = %d\n", a, b); a = a + b; b = a - b; a = a - b; printf("After swap (addition): a = %d, b = %d\n", a, b); // Reset a = 5; b = 3; // XOR swap (for integers) a = a ^ b; b = a ^ b; a = a ^ b; printf("After swap (XOR): a = %d, b = %d\n", a, b); return 0; }

Common Pitfalls and Best Practices

1. Integer Division Gotchas

#include <stdio.h> int main() { // Wrong way float result1 = 5 / 2; // Does integer division first printf("5 / 2 = %.2f (WRONG - integer division)\n", result1); // Right way float result2 = 5.0 / 2; // Float division float result3 = (float)5 / 2; // Explicit cast printf("5.0 / 2 = %.2f (CORRECT)\n", result2); printf("(float)5 / 2 = %.2f (CORRECT)\n\n", result3); return 0; }

2. Modulo with Negative Numbers

#include <stdio.h> int main() { printf("=== Modulo with Negative Numbers ===\n\n"); printf("5 %% 3 = %d\n", 5 % 3); printf("-5 %% 3 = %d\n", -5 % 3); printf("5 %% -3 = %d\n", 5 % -3); printf("-5 %% -3 = %d\n\n", -5 % -3); // Note: Result sign follows dividend in C printf("Note: In C, result sign follows dividend\n"); return 0; }

3. Operator Precedence Confusion

#include <stdio.h> int main() { int a = 5, b = 3, c = 2; // What does this do? int result = a << b + c; // Actually a << (b + c), not (a << b) + c printf("a << b + c = %d\n", result); printf("Because: b + c = %d, then a << %d = %d\n", b + c, b + c, result); // Use parentheses for clarity int correct = (a << b) + c; printf("(a << b) + c = %d\n", correct); return 0; }

4. Floating-Point Precision

#include <stdio.h> #include <math.h> int main() { printf("=== Floating-Point Precision ===\n\n"); double a = 0.1; double b = 0.2; double c = a + b; printf("0.1 + 0.2 = %.20f\n", c); printf("Expected: 0.3\n"); // Never compare floating-point directly if (c == 0.3) { printf("Equal! (this won't print)\n"); } else { printf("Not equal due to precision\n"); } // Use epsilon comparison double epsilon = 0.0000001; if (fabs(c - 0.3) < epsilon) { printf("Equal within epsilon\n"); } return 0; }

Performance Considerations

Optimization Techniques

#include <stdio.h> int main() { int x = 1000; printf("=== Performance Optimizations ===\n\n"); // Multiplication/division by powers of 2 printf("x * 8 = %d\n", x * 8); printf("x << 3 = %d (faster)\n\n", x << 3); // Modulo by powers of 2 printf("x %% 8 = %d\n", x % 8); printf("x & 7 = %d (faster)\n\n", x & 7); // Check even/odd printf("Is x even? "); if ((x & 1) == 0) { printf("Yes (using bitwise)\n"); } return 0; }

Benchmark Example

#include <stdio.h> #include <time.h> int main() { const int iterations = 10000000; clock_t start, end; double cpu_time_used; volatile int result = 0; printf("=== Performance Benchmark ===\n\n"); // Multiplication start = clock(); for (int i = 0; i < iterations; i++) { result = i * 8; } end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("Multiplication: %.3f seconds\n", cpu_time_used); // Shift start = clock(); for (int i = 0; i < iterations; i++) { result = i << 3; } end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("Shift: %.3f seconds (faster)\n", cpu_time_used); return 0; }

Advanced Examples

1. Complex Number Arithmetic

#include <stdio.h> #include <complex.h> int main() { double complex z1 = 1.0 + 2.0 * I; double complex z2 = 2.0 + 3.0 * I; printf("z1 = %.2f + %.2fi\n", creal(z1), cimag(z1)); printf("z2 = %.2f + %.2fi\n\n", creal(z2), cimag(z2)); double complex sum = z1 + z2; double complex diff = z1 - z2; double complex prod = z1 * z2; double complex quot = z1 / z2; printf("Sum: %.2f + %.2fi\n", creal(sum), cimag(sum)); printf("Difference: %.2f + %.2fi\n", creal(diff), cimag(diff)); printf("Product: %.2f + %.2fi\n", creal(prod), cimag(prod)); printf("Quotient: %.2f + %.2fi\n", creal(quot), cimag(quot)); return 0; }

2. Matrix Multiplication

#include <stdio.h> #define SIZE 3 void matrix_multiply(int a[SIZE][SIZE], int b[SIZE][SIZE], int result[SIZE][SIZE]) { for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { result[i][j] = 0; for (int k = 0; k < SIZE; k++) { result[i][j] += a[i][k] * b[k][j]; } } } } void print_matrix(int matrix[SIZE][SIZE], char *name) { printf("%s:\n", name); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { printf("%4d ", matrix[i][j]); } printf("\n"); } printf("\n"); } int main() { int a[SIZE][SIZE] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int b[SIZE][SIZE] = { {9, 8, 7}, {6, 5, 4}, {3, 2, 1} }; int result[SIZE][SIZE]; print_matrix(a, "Matrix A"); print_matrix(b, "Matrix B"); matrix_multiply(a, b, result); print_matrix(result, "A × B"); return 0; }

Best Practices Summary

Do's and Don'ts

// DO: Use parentheses for complex expressions int result = (a + b) * (c - d); // DON'T: Rely on operator precedence int wrong = a + b * c - d; // Confusing // DO: Check for overflow if (a > INT_MAX - b) { printf("Overflow would occur\n"); } // DON'T: Ignore overflow int dangerous = a + b; // May overflow silently // DO: Use explicit casts for mixed types float result = (float)a / b; // DON'T: Mix types without understanding float wrong = a / b; // Integer division first! // DO: Use bitwise ops for performance when appropriate int multiplied = x << 3; // x * 8 // DON'T: Use bitwise ops for readability int confusing = x << 3; // Is this multiplication or shift?

Conclusion

This comprehensive guide covers all aspects of arithmetic operations in C:

Key Takeaways

  • Basic operators (+, -, *, /, %) for fundamental arithmetic
  • Operator precedence determines evaluation order
  • Integer vs floating-point division behaves differently
  • Type conversion affects calculation results
  • Overflow/underflow can cause subtle bugs
  • Bitwise operations provide low-level control
  • Math library offers advanced functions
  • Performance considerations matter for critical code

Best Practices

  1. Always consider type sizes and overflow
  2. Use parentheses for clarity
  3. Be careful with integer division
  4. Avoid comparing floating-point directly
  5. Use bitwise operations for performance when appropriate
  6. Test edge cases (zero, negative numbers, large values)

Mastering these concepts is essential for writing correct, efficient C programs.

Complete C Programming Guide + Compilers Collection


1. C srand() Function – Understanding Seed Initialization

https://macronepal.com/understanding-the-c-srand-function
Explains how srand() initializes the pseudo-random number generator in C by setting a seed value. Using the same seed produces the same sequence, while time(NULL) gives different results each run.


2. C rand() Function Mechanics and Limitations

https://macronepal.com/c-rand-function-mechanics-and-limitations
Explains how rand() generates pseudo-random numbers between 0 and RAND_MAX, its deterministic nature, and limitations for security use cases.


3. C log() Function

https://macronepal.com/c-log-function-2
Covers natural logarithm calculation using <math.h> and its applications.


4. Mastering Date and Time in C

https://macronepal.com/mastering-date-and-time-in-c
Explains <time.h> functions like time(), clock(), difftime(), and struct tm.


5. Mastering time_t Type in C

https://macronepal.com/mastering-the-c-time_t-type-for-time-management
Explains time representation as seconds since Unix epoch and conversion functions.


6. C exp() Function

https://macronepal.com/c-exp-function-mechanics-and-implementation
Explains exponential function exp(x) and its scientific applications.


7. C log() Function (Alternate Guide)

https://macronepal.com/c-log-function
Comparison of log() and log10() with usage examples.


8. C log10() Function

https://macronepal.com/mastering-the-log10-function-in-c
Explains base-10 logarithm for engineering and scientific applications.


9. C tan() Function

https://macronepal.com/understanding-the-c-tan-function
Explains tangent function and radian-based calculations.


10. Random Numbers in C (Secure vs Predictable)

https://macronepal.com/mastering-c-random-numbers-for-secure-and-predictable-applications
Explains difference between rand() and secure randomness methods.


11. Free Online C Compiler

https://macronepal.com/free-online-c-code-compiler-2
Browser-based compiler for testing C programs instantly.


C Functions, Arguments, Parameters & Flow

Mastering Functions in C – Complete Guide

https://macronepal.com/c/mastering-functions-in-c-a-complete-guide/
Covers function structure, modular programming, and real-world usage.


Function Arguments in C

https://macronepal.com/c-function-arguments/
Explains how arguments are passed and used in function calls.


Function Parameters in C

https://macronepal.com/c-function-parameters/
Explains defining inputs for functions and matching them with arguments.


Function Declarations in C

https://macronepal.com/c-function-declarations-syntax-rules-and-best-practices/
Covers prototypes, syntax rules, and best practices.


Function Calls in C

https://macronepal.com/understanding-function-calls-in-c-syntax-mechanics-and-best-practices/
Explains execution flow and parameter handling during function calls.


Void Functions in C

https://macronepal.com/understanding-void-functions-in-c-syntax-patterns-and-best-practices/
Explains functions that do not return values.


Return Values in C

https://macronepal.com/c-return-values-mechanics-types-and-best-practices/
Explains different return types and how functions return results.


Pass-by-Value in C

https://macronepal.com/aws/understanding-pass-by-value-in-c-mechanics-implications-and-best-practices/
Explains how copies of variables are passed into functions.


Pass-by-Reference in C

https://macronepal.com/c/understanding-pass-by-reference-in-c-pointers-semantics-and-safe-practices/
Explains using pointers to modify original variables.


C strstr() Function

https://macronepal.com/aws/c-strstr-function/
Explains substring search inside strings in C.


C Preprocessor & Macros

https://macronepal.com/mastering-c-variadic-macros-for-flexible-debugging/
https://macronepal.com/mastering-the-stdc-macro-in-c/
https://macronepal.com/c-time-macro-mechanics-and-usage/
https://macronepal.com/understanding-the-c-date-macro/
https://macronepal.com/c-file-type/
https://macronepal.com/mastering-c-line-macro-for-debugging-and-diagnostics/
https://macronepal.com/mastering-predefined-macros-in-c/
https://macronepal.com/c-error-directive-mechanics-and-usage/
https://macronepal.com/understanding-the-c-pragma-directive/
https://macronepal.com/c-include-directive/


C Structures, Memory, Scope & Linkage

https://macronepal.com/mastering-structures-in-c/
https://macronepal.com/c-structure-declaration-mechanics-and-usage/
https://macronepal.com/c-structure-initialization-mechanics-and-best-practices/
https://macronepal.com/mastering-c-structure-member-access-for-reliable-data-handling/
https://macronepal.com/c-nested-structures/
https://macronepal.com/mastering-arrays-of-structures-in-c/
https://macronepal.com/c-structure-pointers-mechanics-and-implementation/
https://macronepal.com/understanding-c-structure-parameter-passing-mechanics/
https://macronepal.com/mastering-c-returning-structures-for-efficient-data-flow/
https://macronepal.com/c-self-referential-structures/
https://macronepal.com/mastering-structure-alignment-in-c/
https://macronepal.com/c-structure-padding-mechanics-and-optimization/
https://macronepal.com/understanding-c-flexible-array-members-mechanics-and-usage/
https://macronepal.com/mastering-c-anonymous-structures-for-flattened-data-layouts/
https://macronepal.com/c-unions/
https://macronepal.com/mastering-c-name-mangling-and-symbol-decoration/
https://macronepal.com/c-no-linkage-mechanics-and-scope-isolation/
https://macronepal.com/understanding-c-internal-linkage-mechanics-and-architecture/


C Scope, Storage Classes & Typedef

https://macronepal.com/mastering-function-prototype-scope-in-c/
https://macronepal.com/c-function-scope-mechanics-and-visibility/
https://macronepal.com/understanding-c-file-scope-mechanics-and-architecture/
https://macronepal.com/mastering-c-scope-rules-for-predictable-name-resolution/
https://macronepal.com/c-scope-rules/
https://macronepal.com/mastering-c-register-storage-class-for-historical-context-and-modern-alternatives/
https://macronepal.com/mastering-_thread_local-in-c/
https://macronepal.com/c-extern-storage-class-mechanics-and-usage/
https://macronepal.com/understanding-the-c-static-storage-class-mechanics-and-usage/
https://macronepal.com/c-auto-storage-class/
https://macronepal.com/c-typedef-with-pointers/


Extra Articles

https://macronepal.com/13757-2/
https://macronepal.com/13748-2/
https://macronepal.com/13747-2/
https://macronepal.com/13746-2/
https://macronepal.com/13745-2/
https://macronepal.com/13708-2/
https://macronepal.com/13707-2/
https://macronepal.com/13702-2/


Online Compilers

https://macronepal.com/free-html-online-code-compiler/
https://macronepal.com/free-online-python-code-compiler/
https://macronepal.com/free-online-python2-code-compiler/
https://macronepal.com/free-online-java-code-compiler/
https://macronepal.com/free-online-javascript-code-compiler/
https://macronepal.com/free-online-node-js-code-compiler/
https://macronepal.com/free-online-c-code-compiler/
https://macronepal.com/free-online-c-code-compiler-2/
https://macronepal.com/free-online-c-code-compiler-3/
https://macronepal.com/free-online-php-code-compiler/
https://macronepal.com/free-online-ruby-code-compiler/
https://macronepal.com/free-online-perl-code-compiler/
https://macronepal.com/free-online-lua-code-compiler/
https://macronepal.com/free-online-tcl-code-compiler/
https://macronepal.com/free-online-groovy-code-compiler/
https://macronepal.com/free-online-j-shell-code-compiler/
https://macronepal.com/free-online-haskell-code-compiler/
https://macronepal.com/free-online-scala-code-compiler/
https://macronepal.com/free-online-common-lisp-code-compiler/
https://macronepal.com/free-online-d-code-compiler/
https://macronepal.com/free-online-ada-code-compiler/
https://macronepal.com/free-erlang-code-compiler/
https://macronepal.com/free-online-assembly-code-compiler/

Leave a Reply

Your email address will not be published. Required fields are marked *


Macro Nepal Helper