久违了,博客园。

  新学期的想法。经过了一学期的C语言的学习(ps;指针在自学);

推几个经典的c案例吧:

杨辉三角

ps1:直角三角:

算法:它的每一行的第一列都等于1,后面行数的数=它上一行的同一列+它上一行的上一列

/* 10行的杨辉三角数列 (直角三角形)*/
#include "stdio.h"
void main()
{
    int i,j,a[10][10];
    for(i=0;i<10;i++)//每行第一列为1;
    {
        a[i][i]=1;
        a[i][0]=1;
    }
    for(i=2;i<10;i++)//从第二行开始,
    {
        for(j=1;j<=i-1;j++)//计算算法:
            a[i][j]=a[i-1][j]+a[i-1][j-1];
    }
    for(i=0;i<10;i++)
    {
        for(j=0;j<=i;j++)
            printf("%d\t",a[i][j]);
        printf("\n");
    }
    getch();
    
}

ps2:等腰三角形

算法:与上面对比,即每一行都向后退几格(一行比一行退格格数要递增:运用goto语句)

/* 10行的杨辉三角数列 (等腰三角)*/
#include "stdio.h"
void main()
{
    int i,j,a[10][10];
    for(i=0;i<10;i++)
    {
        a[i][0]=a[i][i]=1;//设置每一行的第一个数为1;
    }
    for(i=2;i<10;i++)//从第二行开始,
    {
        for(j=1;j<=i-1;j++)//每一行的第二个数开始
        {
            a[i][j]=a[i-1][j]+a[i-1][j-1];//每个数=他上一行的上一个数+
        }
    }
    for(i=0;i<10;i++)
    {
        gotoxy(40-3*i,i+1);//退格且格数递增
        for(j=0;j<=i;j++)
        {
            printf("%-6d",a[i][j]);
        }
    }
    getch();
}

PS:由于编译器为WIN—TC;故最后要用(getch;)结束。

posted @ 2017-05-17 18:07  凌公子666  阅读(139)  评论(0)    收藏  举报