目录
- 前言
- 一、题目一
- 二、题目二
- 总结
前言
本篇文章叙述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("*");elseprintf(" ");}printf("\n");}}return 0;
}
总结
在做这些关于打印图案的题目时,主要还是找到规律,入手点是观察每一行的关系,观察每一列的关系,然后是观察行与列之间的关系。最后是把它们当做二维数组,相当于有条件地遍历二维数组。