for循环打印菱形
今天我们来看一个使用双重for循环打印菱形的经典题目
总体来说还是要找到规律,用外层循环控制行数。内层循环控制空格和星星的数量
关键是要找到需要打印多少个空格和星星
#include <stdio.h>
int main()
{
/*
我们就先写一个7行的菱形然后再写n行的菱形
*/
//先写前4行
//for(int i=0;i<4;i++){
// if(i!=0){
// printf("\n");
// }
// for(int j=0;j<3-i;j++){
// printf(" ");
// }
// for(int k=0;k<2*i+1;k++){
// printf(" *");
//
// }
//
//}
////打印下面三行
// for(int i=0;i<3;i++){
// printf("\n");
// for(int j=0;j<i+1;j++){
// printf(" ");
// }
// for(int k=0;k<2*(3-i)-1;k++){
// printf(" *");
//
// }
// }
//
//下面我们来打印n行菱形
int n;
scanf("%d",&n);
n=(n+1)/2;//这个是得到上面的部分有几行
for(int i=0;i<n;i++){
if(i!=0){
printf("\n");//这里是在每行结束进行换行,且第一行不换行
}
for(int j=0;j<n-1-i;j++){
printf(" ");//我这里是直接打印了两个空格
}
for(int k=0;k<2*i+1;k++){//关键是找到循环规律
printf("* ");//复制代码来看每个星星后面有个空格
}
}
/*
打印下半部分,关键是要找到规律
可以先用一个确定的值进行打印最后换成n;这样比较直观
*/
for(int i=0;i<n-1;i++){
printf("\n");
for(int j=0;j<i+1;j++){
printf(" ");
}
for(int k=0;k<2*(n-1-i)-1;k++){
printf("* ");
}
}
return 0;
}
标签:星星,int,打印,空格,菱形,循环
From: https://www.cnblogs.com/harper886/p/17360006.html