2016-09-26 1 views
2

Ich muss ein Programm schreiben, um eine ungerade positive Ganzzahl anzufordern und eine Rautenform auf der Seite zu erzeugen, die aus Sternchen besteht; die Zahl ist die Höhe und auch die Breite ...C Programm, das einen Wert einliest und als Parameter für einen Diamanten verwendet

Ich bin mir nicht sicher, was ich nach dem Einstellen der Parameter für ungerade und positive tun soll ... Ich bin mir nicht ganz sicher, wie ich den imut Wert verwenden und einrichten kann Diamant Abbildung mit diesem Wert

Ich habe eine grundlegende Diamant-Code, aber ich bin mir nicht sicher, was ist los damit.

#include <stdio.h> 
#include <stdlib.h> 

int main (void) 
{ 
    int row, col, numstars; 
    int half, rate = 1; 

    printf("Please enter a positive odd integer.\n"); 

    scanf("%d", &numstars); 

    for (row = 1; row <= numstars; row++) 
    { 
     half = numstars/2; 

     for (col = 0; col < half + 1 - numstars; col++) 
      printf(" "); 

     for (col = 1; col <= 2 * numstars - 1; col++) 
      printf("*"); 

     if ((numstars == (half + 1))) 
      rate = -rate; 
     numstars = numstars + rate; 

     printf("\n");  
    } 
    return 0; 
} 
+2

Sie haben vergessen, eine bestimmte Frage zu stellen, die wir beantworten können. Wenn die Frage lautet "Wie debugge ich meinen Code?", Müssen Sie uns mitteilen, welchen Debugger Sie verwenden möchten. –

+1

@DavidSchwartz danke für die Antwort: D .... ähm irgendeinen Debugger .... ich will nur wissen was ich falsch mache ....... –

+3

Das könnte dir als Gelegenheit auch gut zum lernen dienen Gewohnheiten um Unterstützung bitten. Ein guter Anfang wäre, zu beschreiben, was Sie getan haben und was nicht Ihren Erwartungen entspricht. Stellen Sie sich in den Schuhen der Person oder Personen dar, die Sie um Hilfe bitten. Und versuchen Sie zu erkennen, dass dies keine Website ist, die "mein Programm für mich repariert". Die Leute hier würden dir lieber helfen, diese Dinge selbst zu lernen. – NoelC

Antwort

0

Fragen Sie uns hier, um Ihnen die Grundlagen des Algorithmus zu vermitteln.

  • Sie müssen präziser sein über das Problem Sie haben
  • Sie müssen lernen, wie zu debuggen - umfangreiche Ressourcen existieren im Internet, aber die einfachste ist mit einem Anfänger Buch zu starten.

Das größte Problem ist, ist, dass Sie numstar in Ihrer for Schleife ändern ..., so dass Sie eine Endlosschleife erhalten ...

Hier ist, wie ich Ihren Code beheben würde: machen es einfach und zwei Fälle unterscheiden

#include <stdio.h> 
#include <stdlib.h> 

int main (void) 
{ 
    int row, col, numstars; 
    int half, rate=1; 

    printf("Please enter a positive odd integer.\n"); 
    scanf("%d", &numstars); 

    half=(numstars-1)/2; 
    for (row=0; row<numstars;row++) 
    { 
     if(row <= half) { 
     for (col=0; col< half-row;   ++col) printf(" "); 
     for ( ; col<= half+row;   ++col) printf("*"); 
     } else { 
     for (col=0; col< row-half;   ++col) printf(" "); 
     for ( ; col< numstars+half-row; ++col) printf("*"); 
     } 
     printf("\n"); 
    } 
    return 0; 
} 
Verwandte Themen