这是一个打印由角色组成的 side = integer 的Square的程序。
例如:如果输入的字符为#
,则输出:
然而,它不会读取用户输入,因此也无法在正方形中打印。
请参阅以下代码:
//printing of square of any character problem 5.20
#include<stdio.h>
int main( void )
{
int i, h;
int side;
char fillCharacter;
printf("Enter the side:\n");
scanf("%d", &side);
printf("Enter the character with which to make a square of side %d:\n", side );
scanf("%c", &fillCharacter );
for( h = 1; h <= side; ++h ) {
for( i = 1; i <= side; i++ ) {
printf( "%c ", fillCharacter );
}
printf("\n");
}
return 0;
}
该程序以 -
运行
也就是说,它不会从用户那里获得字符值,尽管源代码中存在该行。
请帮助纠正问题。
答案 0 :(得分:1)
在第二个scanf()
scanf(" %c", &fillCharacter );
这是必需的,因为当您输入第一个scanf()
的数字时,该数字将被读入side
,但换行符\n
将保留在输入缓冲区中。