Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- hourglass_numbers_pattern_v1.c
- Hourglass pattern with abs() and longest row.
- The number of stars in the longest row of hourglass is same as
- the number of rows of the upper triangle of hourglass.
- Hourglass will have 2*n-1 rows.
- Example: nr = 4
- *-*-*-*-*-*-*-
- --*-*-*-*-*-
- ----*-*-*-
- ------*-
- ----*-*-*-
- --*-*-*-*-*-
- *-*-*-*-*-*-*-
- row spaces * r
- 0. 0 7 -3
- 1. 1 5 -2
- 2. 2 3 -1
- 3. 3 1 0
- 4. 2 3 1
- 5. 1 5 2
- 6. 0 7 3
- You can find all my C programs at Dragan Milicev's pastebin:
- https://pastebin.com/u/dmilicev
- */
- #include "stdio.h"
- #include "stdlib.h" // for function abs()
- /*
- *******
- -*****
- --***
- ---*
- --***
- -*****
- *******
- */
- void hourglass_of_stars_v11(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c; // r - row, c - column
- for (r = -n+1; r < n; r++){ // loop for rows
- for (c = 0; c < n-abs(r)-1; c++) // print "-"
- printf("-");
- for (c = 0; c < 2*abs(r)+1; c++) // print "*"
- printf("*");
- printf("\n"); // new row
- }
- }
- /*
- *-*-*-*-*-*-*-
- --*-*-*-*-*-
- ----*-*-*-
- ------*-
- ----*-*-*-
- --*-*-*-*-*-
- *-*-*-*-*-*-*-
- */
- void hourglass_of_stars_v12(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c; // r - row, c - column
- for (r = -n + 1; r < n; r++){ // loop for rows
- for (c = 0; c < n-abs(r)-1; c++) // print "--"
- printf("--");
- for (c = 0; c < 2*abs(r)+1; c++) // print "*-"
- printf("*-");
- printf("\n"); // new row
- }
- }
- /*
- 1234321
- -12321
- --121
- ---1
- --121
- -12321
- 1234321
- */
- void hourglass_of_numbers_v211(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c, num; // r - row, c - column, num - current number
- for (r = -n+1; r < n; r++){ // loop for all rows of the hourglass
- for (c = 0; c < n-abs(r)-1; c++) // print blanks "-"
- printf("-");
- num = 1;
- for (c = 0; c < 2*abs(r)+1; c++){ // print numbers
- if( c<abs(r) )
- printf("%d", num++);
- else
- printf("%d", num--);
- }
- printf("\n"); // new row
- }
- }
- /*
- 1-2-3-4-3-2-1-
- --1-2-3-2-1-
- ----1-2-1-
- ------1-
- ----1-2-1-
- --1-2-3-2-1-
- 1-2-3-4-3-2-1-
- */
- void hourglass_of_numbers_v212(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c, num; // r - row, c - column, num - current number
- for (r = -n+1; r < n; r++){ // loop for all rows of the hourglass
- for (c = 0; c < n-abs(r)-1; c++) // print blanks "--"
- printf("--");
- num = 1;
- for (c=0; c<2*abs(r)+1; c++){ // print numbers
- if( c<abs(r) )
- printf("%d-", num++);
- else
- printf("%d-", num--);
- }
- printf("\n"); // new row
- }
- }
- /*
- 4321234
- -43234
- --434
- ---4
- --434
- -43234
- 4321234
- */
- void hourglass_of_numbers_v221(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c, num; // r - row, c - column, num - current number
- for (r = -n+1; r < n; r++){ // loop for all rows of the hourglass
- for (c = 0; c < n-abs(r)-1; c++) // print blanks "-"
- printf("-");
- num = n;
- for (c = 0; c < 2*abs(r)+1; c++){ // print numbers
- if( c < abs(r) )
- printf("%d", num--);
- else
- printf("%d", num++);
- }
- printf("\n"); // new row
- }
- }
- /*
- 4-3-2-1-2-3-4-
- --4-3-2-3-4-
- ----4-3-4-
- ------4-
- ----4-3-4-
- --4-3-2-3-4-
- 4-3-2-1-2-3-4-
- */
- void hourglass_of_numbers_v222(int n){
- // n - number of rows in upper triangle of hourglass
- int r, c, num; // r - row, c - column, num - current number
- for (r = -n+1; r < n; r++){ // loop for all rows of the hourglass
- for (c = 0; c < n-abs(r)-1; c++) // print blanks "--"
- printf("--");
- num = n;
- for (c = 0; c < 2*abs(r)+1; c++){ // print numbers
- if( c < abs(r) )
- printf("%d-", num--);
- else
- printf("%d-", num++);
- }
- printf("\n"); // new row
- }
- }
- int main(void)
- {
- int n=4; // n - number of rows of the upper triangle of hourglass
- printf("\n 1.1 \n\n");
- hourglass_of_stars_v11(n);
- printf("\n 1.2 \n\n");
- hourglass_of_stars_v12(n);
- printf("\n 2.1.1 \n\n");
- hourglass_of_numbers_v211(n);
- printf("\n 2.1.2 \n\n");
- hourglass_of_numbers_v212(n);
- printf("\n 2.2.1 \n\n");
- hourglass_of_numbers_v221(n);
- printf("\n 2.2.2 \n\n");
- hourglass_of_numbers_v222(n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement