2017-10-28 59 views
0

我試圖創建一個函數,它允許從主函數調用時打印不同大小的樹。不幸的是,當我運行我的代碼時,在主函數中出現錯誤「參數類型'void'不完整」三次。這裏是我的代碼:C - 「參數類型'void'不完整」使用函數打印樹的錯誤

#include <stdio.h> 

void tree(int rows) 
{ 
int i, j; 

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

int main() 
{ 
    int rows; 
    rows = 5; 
    printf("%d\n", tree(rows)); 
    rows = 3; 
    printf("%d\n", tree(rows)); 
    rows = 6; 
    printf("%d\n", tree(rows)); 
} 

我將不勝感激任何意見!

+2

您的printf預計返回類型** ** INT然而,樹的回報**無效的**。 –

+0

所以我需要改變%d? – Rachel

+0

'main'中的'printf'應該顯示什麼信息? – user3386109

回答

1

如果你不想改變你的tree函數,你可以簡單地調用樹(不要在printf內部調用)。 正如T. Obadiah指出的,printf聲明期望int,但您的函數是void。 您的tree的實施已經打印輸出。

void tree(int rows) 
{ 
int i, j; 

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

int main() 
{ 
    int rows; 
    rows = 5; 
    tree(rows); 
    rows = 3; 
    tree(rows); 
    rows = 6; 
    tree(rows); 
} 

輸出爲rows = 5

*                                        
    ***                                        
    *****                                        
*******                                        
********* 
+0

啊我看到我做了什麼。非常感謝! – Rachel

+1

@Rachel不用客氣。作爲新成員,您可能還會看看https://stackoverflow.com/help – PhillipD

+0

我會檢查一下! – Rachel