C program to print map of India [ C Tutorials ]
The string is a run-length encoding of the map of India. Alternating characters in the string stores how many times to draw a space, and how many times to draw an exclamation mark consecutively.
// C program to print map of India
#include <stdio.h>
int main()
{
int a = 10, b = 0, c = 10;
// The encoded string after removing first 31 characters
// Its individual characters determine how many spaces
// or exclamation marks to draw consecutively.
char* str = “TFy!QJu ROo TNn(ROo)SLq SLq ULo+UHs UJq ”
“TNn*RPn/QPbEWS_JSWQAIJO^NBELPeHBFHT}TnALVlBL”
“OFAkHFOuFETpHCStHAUFAgcEAelclcn^r^r\\tZvYxXyT|S~Pn SPm ”
“SOn TNn ULo0ULo#ULo-WHq!WFs XDt!”;
while (a != 0)
{
// read each character of encoded string
a = str[b++];
while (a– > 64)
{
if (++c == 90) // ‘Z’ is 90 in ascii
{
// reset c to 10 when the end of line is reached
c = 10; // ‘\n’ is 10 in ascii
// print newline
putchar(‘\n’); // or putchar(c);
}
else
{
// draw the appropriate character
// depending on whether b is even or odd
if (b % 2 == 0)
putchar(‘!’);
else
putchar(‘ ‘);
}
}
}
return 0;
}