C Program
#include <stdio.h>
int main(){
int n=9;
for(int i=1;i<=3;i++){
for(int j=1;j<=n;j++)
printf(( (i+j)%4==0 || (i==2 && j%4==0) ) ? "*" : " ");
printf("\n");
}
}C Output
Input: n = 9 Output: * * * * * * * * * * *
C++ Program
#include <iostream>
using namespace std;
int main(){
int n=11;
for(int i=1;i<=3;i++){
for(int j=1;j<=n;j++)
cout<<(((i+j)%4==0)||(i==2&&j%4==0)?"*":" ");
cout<<"\n";
}
}C++ Output
Input: n = 11 Output: * * * * * * * * * * * * * * *
JAVA Program
public class Main{
public static void main(String[] args){
int n=7;
for(int i=1;i<=3;i++){
for(int j=1;j<=n;j++)
System.out.print(( (i+j)%4==0 || (i==2 && j%4==0) )?"*":" ");
System.out.println();
}
}
}JAVA Output
Input: n = 7 Output: * * * * * * * *
Python Program
n=13
for i in range(1,4):
print(''.join('*' if (i+j)%4==0 or (i==2 and j%4==0) else ' ' for j in range(1,n+1)))Python Output
Input: n = 13 Output: * * * * * * * * * * * * * * * *
Deep-Dive Explanation
Learning the Zig-Zag Pattern
The zig-zag pattern produces a wave motion effect in text by placing stars (*) in specific locations in a 3-row grid. Rather than printing in straight lines, the stars go diagonally in alternating positions, creating the illusion of a zig-zag or sine wave.
Example
For n = 9, the position of the stars has a predictable pattern:
In row 1, stars occur at (i+j) % 4 == 0.
In row 2, stars show up in two locations: where j % 4 == 0 and where (i+j) % 4 == 0.
In row 3, stars again show up where (i+j) % 4 == 0.
This formula makes the stars "move" diagonally.
Real-Life Analogy
Imagine Christmas lights going from side to side on a wall or along the path of a snake slithering in waves. The stars resemble light bulbs, and the spaces are between them.
Why It Matters
This is a great exercise in understanding conditional placement with nested loops. It's not so much about printing rows and columns evenly — it's about exact placement according to mathematical rules, and that's extremely valuable in graphics, print algorithms, and game development.
Learning Insights
This instructs beginners:
How to apply modulo arithmetic to position patterns.
How to conceptualize patterns as math functions, rather than loops.
How to escape left-to-right, top-to-bottom thinking and embrace diagonal logic instead.
Interview & Real-World Use
In interview, this is an example of whether you can convert a graphic pattern into a code using arithmetic conditions. In real-world usage, the same principle applies for graphics rendering, LED timing, or wave animation.
The C, C++, Java, and Python zig-zag pattern program is an ideal demonstration of nesting loops with conditional statements to create visually pleasing output. By learning this, developers can create wave-like effects, sine-wave effects, and graphics based on text, and it remains a popular choice in programming practice, interview questions, and creative console art.

Social Plugin