【深基4.习8】求三角形
题目描述
模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。
输入格式
输入矩阵的规模,不超过 9 9 9。
输出格式
输出矩形和正方形
样例 #1
样例输入 #1
4
样例输出 #1
01020304
05060708
09101112
13141516
01
0203
040506
07080910
思路
首先,讲个小知识,用%02d就会输出两位,如果不够位数,就在前面补零,这样就可以实现题目中01的效果,代码演示如下:
printf("%02d",1);
这行代码输出为01。用这一行语句就可以实现样例中的效果,这样,我们就可以开始写代码了。首先,定义一个变量s,让它等于0。可以方便输出。先输入n,然后输出矩形,记得用刚刚讲的方法输出。这一段的代码如下:
int n;
scanf("%d",&n);
int s=0;
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
s++;
printf("%02d",s);
}
printf("\n");
}
接着我们再来看三角形,别忘了先输出空行(\n)。外层循环都一样(和矩阵一样),里面加一个判断:
if(j>(n-i)){
s++;
printf("%02d",s);
}else{
printf(" ");
}
就用这个判断加上循环就可以输出三角形了,在循环之前记得把s置0。
完整C语言AC代码
#include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
int s=0;
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
s++;
printf("%02d",s);
}
printf("\n");
}
printf("\n");
s=0;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(j>(n-i)){
s++;
printf("%02d",s);
}else{
printf(" ");
}
}
printf("\n");
}
return 0;
}
总结
这一题主要考的是循环与选择的使用和格式化输出的使用。