#include<stdio.h> /* 功能:用于输出正三角形 作者:一只猿新手? */? int main() { ?? ?int l,w,f1,h=1,t,n; ?? ?printf("请输入图形的大小(数值范围为1-9):"); ?//此范围是因为在10以及之后一次会输出两个数字? ?? ?scanf("%d",&l); ?? ?//输出图形的行数? ?? ?f1=1; ? //行数? ?? ?t=l-1; ?//使用思路:将空格比作一个倒立三角形的一半,由于最后一行没有空格因此要减一? ?? ?while(f1<=l) ?? ?{ ?? ??? ? ?? ??? ?w=1; ?? ??? ?n=1; ?? ??? ?while(n<=t) ?? ??? ?{ ?? ??? ??? ?printf(" "); ?? ??? ??? ?n++; ?? ??? ?} //控制每一行输出的空格? ?? ??? ?while(w<=h) ?? ??? ?{ ?? ??? ? ?? ??? ??? ?printf("%d",f1); ?? ??? ??? ?w++; ?? ??? ?} //控制每一行输出的数字个数? ?? ??? ?printf("\n"); ? ? ? ? ? ? ? //当内嵌循环执行完一次,则换一次行? ?? ??? ?f1++; ? //使循环结束? ?? ??? ?h+=2; ? //每一行增加的数字的个数? ?? ??? ?t--; ? ?//逐步减少每一次空格的输出? ?? ?}//整个循环运行一次,会进行两次嵌套循环运行 ,每一运行,输出一行然后再次运行? }? /* 此语句与矩阵输出不同 在矩阵中,各个控制数值都已经确定 而在此语句中,变量的值在循环中动态变化 **在每一行的数据的个数也有不同: 此语句与矩阵最大的不同便在于上一行的控制方法,个数为动态控制,而不是一成不变? */?
|