那还要看你输出要求是等腰三角形还是直角三角形。得法很多,提供一个用数组的、输出等腰三角形的作参考……
成都创新互联专注于莘县企业网站建设,成都响应式网站建设公司,商城网站制作。莘县网站建设公司,为莘县等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
void myyh(void){
int i, j, a[7]={0,1,};
for(a[1]=i=1;i=6;i++){
printf("%*c",(6-i)*2+1,' ');
for(j=i;j=1;j--)
printf("%4d",a[j]=a[j-1]+a[j]);
printf("\n");
}
}
int main(void){
myyh();
return 0;
}
#includelt;stdio.hgt;
#defineN7//以7行7列为例
intmain()
{
inta[N][N];//N行N列的杨辉三角
inti,j;
for(i=0;ilt;N;i++)//先赋值两边
{
ai[0]=1;
aii=1;
}
for(i=2;ilt;N;i++)//计算中间的数值
{
for(j=1;jlt;i;j++)
ai[j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;ilt;N;i++)//输出部分
{
for(j=0;jlt;i+1;j++)
printf("%d",ai[j]);
printf("\n");
}
}
运行效果:
扩展资料:
说明:
ai[j]=a[i-1][j-1]+a[i-1][j];该语句用于求中间值
表示:中间值等于上一行前一列的数加上上一行同一列的数
例图中6(a[4][2]位置)等于上行两个3(前a[3][1],后a[3][2])相加
即表示为:a[4][2]=a[3][1]+a[3][2]
相当于:a[4][2]=a[4-1][2-1]+a[4-1][2]
等价于:ai[j]=a[i-1][j-1]+a[i-1][j]
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md--gt;m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
下面第一个是编写杨辉三角的程序(可以通过改变N的大小得到不同大小的三角形)
第二个程序是输出某一行某一列的数字。
#includestdio.h
#define N 10
int main()
{
int a[N][N];
int i,j,k;
for(i=0;iN;i++)
{
for(k=0;kN-i;k++)
printf(" ");
for(j=0;ji;j++)
{
if(j==0||j==i-1)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}
#includestdio.h
int Pascal(int row,int col)
{
if(col==1||col==row)
return 1;
else
return Pascal(row-1,col-1)+Pascal(row-1,col);
}
int main()
{
int row,col;
scanf("%d %d",row,col);
printf("%d\n",Pascal(row,col));
return 0;
}
方法1:
#include stdio.h
main()
{
int i,j,a[10][10]; /*10行10列的杨辉三角*/
for(i=0;i10;i++) /*先赋值两边*/
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i10;i++) /* 计算中间的数值 */
for(j=1;ji;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i10;i++) /* 输出部分 */
{
for(j=0;ji+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
方法2:
#includestdio.h
main()
{
long i,j,n,k;
printf("请输入要输出的杨辉三角的行数:");
scanf("%d",n);
for(i=1;i=n;i++)
{
k=1;
for(j=1;j=i;j++)
{
printf("%5ld",k);
k=k*(i-j)/j;
}
printf("\n");
}
}