Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // tri.c - draw ASCII sirinpinsky triangle, tri-force pattern
- // solution to https://boards.4channel.org/g/thread/70748195
- #include <stdio.h>
- int H = 3;
- int T = 2;
- /*--- forward declarations for top-down design ---*/
- void tri(int N);
- void tri_row(int indent, int n, int w);
- void tri_line(int h, int n, int w);
- void streak(char c, int times);
- /*--- top-level function ---*/
- void tri(int N) {
- int i, indent;
- for(i = 1; i <= N; i++) {
- indent = (N-i);
- tri_row(indent, i, N);
- }
- return;
- }
- void tri_row(int indent, int n, int w) {
- int i, j;
- for(j = 1; j <= H; j++) {
- streak(' ', indent*H);
- tri_line(j, n, w);
- }
- return;
- }
- void tri_line(int h, int n, int w) {
- int i;
- for(i = 1; i <= n; i++) {
- streak(' ', H-h);
- streak('*', h);
- streak('*', h);
- if(h < H) streak(' ', H-h);
- }
- putc('\n', stdout);
- return;
- }
- void streak(char c, int times) {
- int i;
- for(i = 1; i <= times; i++) putc(c, stdout);
- return;
- }
- /*--- MAIN ---*/
- int main(int argc, char *argv[]) {
- if(argc > 1) sscanf(argv[1], "%d", &T);
- if(argc > 2) sscanf(argv[2], "%d", &H);
- tri(T);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement