麻烦高手帮我解释下这题

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:53:29
#include<stdio.h>
void display();//声明
void main()
{
printf("\n 呈等边三角形显示\"*\"");
printf("\n--------------------------\n");
display();//调用
printf("\n");
}
void display()//定义
{
int i,j,oddno_rows;
for(i=0,oddno_rows=0;i<=5;i++,oddno_rows+=2)
{
for(j = 10;j>i;j--)
{
printf(" ");
}
for(j=0;j<=oddno_rows;j++)
{
printf("*");
}
printf("\n");
}
}
刷分的麻烦高抬贵手
for(i=0,oddno_rows=0;i<=5;i++,oddno_rows+=2)
这一步还是不明白
如果J是空格那么I就是*,怎么*小于=5了????不明白

运行的结果是
:
呈等边三角型显示"*"
---------------------
*
***
*****
*******
*********
***********

如果你是想要知道这个程序的运行原理~~
那就看我下面的解释~~
主函数中~~~有三个输出语句printf()~~和一个调用函数display()的语句.
display函数里首先声明了三个变量,其次又有三个for语句,而这三个for语句属于嵌套语句.
也就是在i=0,oddno+rows=0时,循环后i小于等于5时,i++,oddno_rows++,然后运行下一个for循环语句,并通过printf()打出一个回车行("\).
第二个第三个for语句的解释和上面的差不多~~
同样也是当条件满足的时候~~~循环下面的for语句或者其他语句,当所有语句完成后,再进行第一次以后的循环

最简单的说明吧~~~

程序先循环第一个for语句~~
在i=0,oddno+rows=0时,循环后i小于等于5时,i++,oddno_rows+=2,然后运行下一个for循环语句,并通过printf()打出一个回车行("\n").

也就是说~~~第一次循环就是为了循环第二个for语句和第三个for语句打上一个回车~~
当第一次循环成立时~~第二个for循环开始循环~~~当条件j>i时~~~j减一个数~~
这个for循环会循环10次~~第一次输出10个空格,第二次循环输出9个,依次类推。

而第三个for循环在第二个for循环循环一次后~~~开始执行输出"*",以每次输出多2个的数量递增。也就是说,第二次循环会输出3个~~

当这些都完成后~~~
第一个for循环会进入第二次循环,来判断是否满足里面的条件,而这时,i已经加上了一个