目录
- 前言
- 一、题目一
- 二、题目二
- 总结
前言
本篇文章叙述c语言中打印某种图案的练习题,以便加深对c语言的运用和理解。
一、题目一
题目分析:
行与行之间的关系:第一行不进行空格,从第二行开始空一个空格,后面的空格式逐行递增1一个空格;
列与列之间的关系:每一列之间使用一个空格隔开。
代码实现:
int main()
{
char str[5] = { '*','*','*','*','*' };
int i = 0;
int j = 0;
int k = 0;
char space = ' ';
for (i = 0; i < 5; i++)
{
for (j = 1; j <= i; j++)//输出每一行之前的空格
{
printf("%c",space);
}
//输出元素
for (k = 0; k < 5; k++)
{
printf("%c", str[k]);
if (k < 4)
printf("%c", space);
}
printf("\n");
}
return 0;
}
二、题目二
题目分析:
将整个图形看成是一个矩形,发现其实打印的是矩形的两条对角线;
设i,j表示行下标和列下标(从0开始),n表示长度
第一条对角线条件:i = = j;
第二条对角线条件:(i+j) = = (n -1);
代码实现:
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j < n; j++)
{
if (i == j || ((i + j) == (n - 1)))
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
总结
在做这些关于打印图案的题目时,主要还是找到规律,入手点是观察每一行的关系,观察每一列的关系,然后是观察行与列之间的关系。最后是把它们当做二维数组,相当于有条件地遍历二维数组。