2017-06-11 165 views
0

試圖學習C我被卡住了這一點:我想寫一個函數的平方,應該在屏幕上打印一個填充正方形的大小和填充字符由用戶選擇。所以我寫了這一點:無法理解函數輸出(C)

#include <stdio.h> 

int squared (int side, char fillCharacter); 

int main(){ 
    int side; 
    char fillCharacter; 

    printf("Enter the side "); 
    scanf("%d", &side); 

    printf("Enter the character "); 
    scanf("%c", &fillCharacter); 

    printf("%d%c",squared(side, fillCharacter)); 
} 

int squared (int side, char fillCharacter){ 
    for (int row=1 ; row <= side; row++){ 
     for (int i =1; i <= side; i++){ 
     printf("%c", fillCharacter); 

     } 
    puts(""); 

    } 
} 

但可悲的是,它的輸出甚至不掃描字符,只是打印空白

Enter the side 2 
Enter the character 

我試圖改變的事情,但我讓事情變得更糟,所以如果有人可以給我一個提示,我真的很感激它。謝謝。

+2

你的函數不會返回任何東西,你可以在printf中調用它,它需要一個int和一個char。 –

+1

請試試這個:'scanf(「%c」,&fillCharacter);'(在%c之前放一個空格) –

+1

要輸入一個整數,請輸入一個值(比如'2'),然後按回車鍵。 '%c'拿起那個輸入鍵作爲一個字符(它是一個空格字符)。 – Peter

回答

0

這與this problem有關。這個答案提供了一個解決方案,但您可以通過反轉對scanf的調用來修復它:首先是字符,然後是數字。