#include <stdio.h>
#define TRIANGLE_PERIMETER(x,y,z)(x+y+z) // calculate the perimeter of a triangle
#define SQUARE_PERIMETER(x)(x*4) // calculate the perimeter of a square
#define RECTANGLE_PERIMETER(x,y)((2*x)+(2*y)) // calculate the perimeter of a rectangle
#define QUADRILATERAL_PERIMETER(x,y,z,w)(x+y+z+w) // calculate the perimeter of a quadrilateral
#define PI 3.14159265358979323846 //define the mathematical constant PI
#define CIRCLE_PERIMETER(x)(PI*(x*x)) // calculate the perimeter of a circle
#define SECTOR_PERIMETER(x,y)(x*(y+2)) //calculate the perimeter of a sector
int main() {
// Calling the TRIANGLE_PERIMETER macro
float s1 = 5.0;
float s2 = 6.0;
float s3 = 12.0;
float perim1 = TRIANGLE_PERIMETER(s1,s2,s3);
printf("Perim. of the triangle is: %f\n", perim1);
// Calling the SQUARE_PERIMETER macro
float s1_new = 5.0;
float perim2 = SQUARE_PERIMETER(s1_new);
printf("Perim. of the square is: %f\n", perim2);
// Calling the RECTANGLE_PERIMETER macro
float s1_rect = 5.0;
float s2_rect = 7.0;
float perim3 = RECTANGLE_PERIMETER(s1_rect,s2_rect);
printf("Perim. of the rectangle is: %f\n", perim3);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFRSSUFOR0xFX1BFUklNRVRFUih4LHkseikoeCt5K3opICAgLy8gY2FsY3VsYXRlIHRoZSBwZXJpbWV0ZXIgb2YgYSB0cmlhbmdsZQogCiNkZWZpbmUgU1FVQVJFX1BFUklNRVRFUih4KSh4KjQpIC8vIGNhbGN1bGF0ZSB0aGUgcGVyaW1ldGVyIG9mIGEgc3F1YXJlCgojZGVmaW5lIFJFQ1RBTkdMRV9QRVJJTUVURVIoeCx5KSgoMip4KSsoMip5KSkgLy8gY2FsY3VsYXRlIHRoZSBwZXJpbWV0ZXIgb2YgYSByZWN0YW5nbGUKCiNkZWZpbmUgUVVBRFJJTEFURVJBTF9QRVJJTUVURVIoeCx5LHosdykoeCt5K3ordykgLy8gY2FsY3VsYXRlIHRoZSBwZXJpbWV0ZXIgb2YgYSBxdWFkcmlsYXRlcmFsCgojZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYgLy9kZWZpbmUgdGhlIG1hdGhlbWF0aWNhbCBjb25zdGFudCBQSQojZGVmaW5lIENJUkNMRV9QRVJJTUVURVIoeCkoUEkqKHgqeCkpIC8vIGNhbGN1bGF0ZSB0aGUgcGVyaW1ldGVyIG9mIGEgY2lyY2xlCgojZGVmaW5lIFNFQ1RPUl9QRVJJTUVURVIoeCx5KSh4Kih5KzIpKSAvL2NhbGN1bGF0ZSB0aGUgcGVyaW1ldGVyIG9mIGEgc2VjdG9yCgppbnQgbWFpbigpIHsKICAgIC8vIENhbGxpbmcgdGhlIFRSSUFOR0xFX1BFUklNRVRFUiBtYWNybwogICAgZmxvYXQgczEgPSA1LjA7CiAgICBmbG9hdCBzMiA9IDYuMDsKICAgIGZsb2F0IHMzID0gMTIuMDsKICAgIGZsb2F0IHBlcmltMSA9IFRSSUFOR0xFX1BFUklNRVRFUihzMSxzMixzMyk7CiAgICBwcmludGYoIlBlcmltLiBvZiB0aGUgdHJpYW5nbGUgaXM6ICVmXG4iLCBwZXJpbTEpOwoKICAgIC8vIENhbGxpbmcgdGhlIFNRVUFSRV9QRVJJTUVURVIgbWFjcm8KICAgIGZsb2F0IHMxX25ldyA9IDUuMDsKICAgIGZsb2F0IHBlcmltMiA9IFNRVUFSRV9QRVJJTUVURVIoczFfbmV3KTsKICAgIHByaW50ZigiUGVyaW0uIG9mIHRoZSBzcXVhcmUgaXM6ICVmXG4iLCBwZXJpbTIpOwoKICAgIC8vIENhbGxpbmcgdGhlIFJFQ1RBTkdMRV9QRVJJTUVURVIgbWFjcm8KICAgIGZsb2F0IHMxX3JlY3QgPSA1LjA7CiAgICBmbG9hdCBzMl9yZWN0ID0gNy4wOwogICAgZmxvYXQgcGVyaW0zID0gUkVDVEFOR0xFX1BFUklNRVRFUihzMV9yZWN0LHMyX3JlY3QpOwogICAgcHJpbnRmKCJQZXJpbS4gb2YgdGhlIHJlY3RhbmdsZSBpczogJWZcbiIsIHBlcmltMyk7Cn0=