2017-06-11 172 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的调用来修复它:首先是字符,然后是数字。