簡體   English   中英

C程序三角形

[英]C Program triangle

我需要提示用戶輸入數字“ n”,然后在單獨的行中打印打印星,例如,如果用戶輸入5,則應打印以下內容(使用while循環)

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

我的代碼沒有輸出

int n, x = 1, y = 1;
printf("enter a number : ");
scanf_s("%d", &n);

while (x <= n){
    x++;
    while (y <= x){

        while (y >= n){
            y--;
            printf("*");
        }
        printf("\n");

    }
    system("pause");
}

}

這應該為您工作:

#include <stdio.h>

int main() {

    int number, count, characterCount;


    printf("Please enter a number:\n>");
    scanf("%d", &number);

    for(count = 1; count <= number; count++) {

        for(characterCount = 1; characterCount <= count; characterCount++)
            printf("*");

        printf("\n");

    }

        for(count = 1; count < number; count++) {

        for(characterCount = number-1; characterCount >= count; characterCount--)
            printf("*");

        printf("\n");

    }


    return 0;
}

評論后編輯:

while循環的解決方案:

#include <stdio.h>

int main() {

    int number, count = 1, characterCount;


    printf("Please enter a number:\n>");
    scanf("%d", &number);

    while(count <= number) {

        characterCount = 1;
        while(characterCount <= count) {
            printf("*");
            characterCount++;
        }

        printf("\n");
        count++;
    }

    count = 1;

    while(count < number) {

        characterCount = number-1;
        while( characterCount >= count) {
            printf("*");
            characterCount--;    
        }

        printf("\n");
        count++;
    }


    return 0;
}

您可以僅使用2個for循環來實現,例如:

int i,k,n,flag=0;
printf("Enter Number of Rows    :");
scanf("%d",&n);
for(i=-n;i<=n;i++)
{
    if(i < 0)
    {
        i = -i;
        flag=1;
    }
    for(k=(n-i)+1;k>0;k--)
    {
        printf("*");
    }
    if(flag==1)
    {
        i=-i;flag=0;
    }
    printf("\n");
}

例如,如果用戶輸入值2 ,它將打印

*
**
***
**
*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM