printf("Introduza o numero: "); scanf("%i", &numero); for (i = 1; numero >= i; i++) { for (k = i; k < numero; k++) { printf("*"); } for (g = 1; g <= i; g++) { printf("%i", g); } for (g = i - 1; g > 0; g--) { printf("%i", g); } for (k = i; k < numero; k++) { printf("*"); } printf("\n"); } for (i = 1; numero > i; i++) { for (k = i; k < numero; k++) { printf("*"); } for (g = 1; g <= i; g++) { printf("%i", g); } for (g = i - 1; g > 0; g--) { printf("%i", g); } for (k = i; k < numero; k++) { printf("*"); } printf("\n"); } 

There is this code, it issues

alt text

It is necessary to invert from the bottom up, tell me how, you do not need to decide.

    1 answer 1

    Corrected your code:

     #include <stdio.h> #include <conio.h> int main() { int i, k, g, numero; printf("Introduza o numero: "); scanf("%i", &numero); for (i = 1; numero >= i; i++) { for (k = i; k < numero; k++) { printf("*"); } for (g = 1; g <= i; g++) { printf("%i", g); } for (g = i - 1; g > 0; g--) { printf("%i", g); } for (k = i; k < numero; k++) { printf("*"); } printf("\n"); } for (i = numero; i>=1; i--) { for (k = i; k < numero; k++) { printf("*"); } if (i < numero) { for (g = 1; g <= i; g++) { printf("%i", g); } for (g = i - 1; g > 0; g--) { printf("%i", g); } } for (k = i; k < numero; k++) { printf("*"); } if (i < numero) printf("\n"); } printf("\n\nDavi na knopku ANY KEY!!!"); getch(); return 0; } 

    It is possible that this condition is not the most successful solution, but this is what first comes to mind:

     if (i < numero) { for (g = 1; g <= i; g++) { printf("%i", g); } for (g = i - 1; g > 0; g--) { printf("%i", g); } }