2017-04-23 3 views
1

Ich mag ein Programm erstellen, ein Muster zu drucken, wie unten gezeigt,Wie kann ich dieses Muster drucken?

********** 
**** **** 
*** *** 
**  ** 
*  * 

Ich habe versucht, dieses Muster zu schaffen, aber es wird nicht gedruckt, die Sterne in der Mitte der ersten Zeile. Dies ist der Code.

int main() 
{ 
int i,j,k,l; 

char c='*'; 

for(i=1;i<=5;i++) 
{ 
    for(j=5;j>=i;j--) 
    { 
     printf("%c",c); 
    } 
    for(k=1;k<=i;k++) 
    { 
     printf(" "); 
    } 
    for(l=5;l>=i;l--) 
    { 
     printf("%c",c); 
    } 
    printf("\n"); 
} 

getch(); 

return 0; 
} 

Dieses Programm druckt das unten gezeigte Muster.

***** ***** 
**** **** 
***  *** 
**  ** 
*   * 

Also, was sind Ihre Vorschläge?

+1

Sie erhalten eine +1 für die erste Person, die ich heute bei ihren Hausaufgaben gefunden habe und die einen Code geliefert hat. –

+1

Sie benötigen einen Platz weniger in jeder Zeile. Wie kannst du deine mittlere 'for'-Schleife ändern, um das zu tun? – aschepler

Antwort

0

Sie benötigen nur einen Raum zu entfernen:

for(k=1;k<i;k++) // changing the <= to < 
1

Der mittlere Kreis sollte for(k=1;k<i;k++) sein (mit einem < anstelle von <=).

Ansonsten hat jede Zeile einen zusätzlichen Platz in der Mitte.

1

Um den redundanten Raum nur zu vermeiden, ändern:

for(k=1;k<=i;k++) 

zu:

for(k=1;k<i;k++) 
0

dies versuchen,

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
int i,j,k,l; 

char c='*'; 

for(i=1;i<=5;i++) 
{ 
    for(j=5;j>=i;j--) 
    { 
     printf("%c",c); 
    } 
    for(k=1;k<i;k++) 
    { 
     printf(" "); 
    } 
    for(l=5;l>=i;l--) 
    { 
     printf("%c",c); 
    } 
    printf("\n"); 
} 

getch(); 

return 0; 
} 

Ausgabe:

********** 
**** **** 
*** *** 
**  ** 
*  * 

dieser Code auch gleiche Leistung zeigen :) wenn jemand versuchen, diese können, wenn Mangel :)

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
int i,j,k=0; 


for(i=5;i>=1;i--) 
{ 
    for(j=1;j<=i;j++) 
    { 
     printf("*"); 
    } 
    for(j=1;j<=k;j++) 
    { 
     printf(" "); 
    } 
    k = k+2; 
    for(j=1;j<=i;j++) 
    { 
     printf("*"); 
    } 
    printf("\n"); 
} 

getch(); 

return 0; 
} 
1

Die Präzision %.precision Feld kann eine bestimmte Anzahl von Zeichen drucken verwendet werden und der Stern erlaubt es, eine Variable als Genauigkeit zu verwenden.

#include <stdio.h> 

int main (void) 
{ 
    char stars[10] = "*********"; 
    char spaces[10] = "   "; 
    int i = 0; 

    for (i = 0; i < 5; i++) { 
     printf ("%.*s%.*s%.*s\n", 5 - i, stars, i * 2, spaces, 5 - i, stars); 
    } 
    return 0; 
}