初学者,麻烦哪位大大指引下
#include"stdio.h"
int main(void)
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
上循环的最后一个FOR 为什么这样写
追答我弄错了,是打出2*i+1个星号,i是从第0号开始的,第一行i=0
最后输出:
*流程看了半天,脑子快成浆糊了
算法
追答你这个程序的算法是先输出一个上三角形,再输出一个下三角形,各用了一个循环
输出上角形:
for(i=0;i<=3;i++) //一、确定循环次数,输出几行
{
for(j=0;j<=2-i;j++) printf(" "); //二、确定每次空格的变化
for(k=0;k<=2*i;k++) printf("*"); //确定每行*的个数
printf("\n");
}
分析输出图可知:每行*的变化是1 3 5 7 前导空格的变化是3 2 1 0
根据规律,确定变量的变化就可以得到图形了
第一个星号后面的换行是怎样输出的,按流程不是应该执行k++了吗?最主要还是流程看不懂,FOR的连续嵌套的流程是怎样的
追答你按照汉字分析,形成自己的思路,先试着去编写这个三角形,体会一下各语句的实际效果,不要总是读别人的(自己不动手),不能达到学会编程的目的。
看你问换行的输出,可能是你对for循环语句不理解,
for(k=0;k<=2*i;k++)
printf("*");只有这句是循环体内容,即:循环语句只有句
printf("\n"); 这句是循环外的语句,每转一次外循环都会输出一次