久违了,博客园。
新学期的想法。经过了一学期的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;)结束。

浙公网安备 33010602011771号