精华内容
下载资源
问答
  • c语言 打印杨辉三角

    2013-12-03 10:38:49
    c语言 打印杨辉三角
  • C语言打印杨辉三角形

    千次阅读 多人点赞 2020-04-13 15:51:51
    这就是我们用C语言杨辉三角的关键之一。 先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为 1,即当每行的第一个数和最后一个数为 1。a[i][0]=a[i][i-1]=1,n 为行数。除两边的数外,任何一个数为...

    C语言打印杨辉三角形

    方法一

    杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。
    先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为 1,即当每行的第一个数和最后一个数为 1。a[i][0]=a[i][i-1]=1,n 为行数。除两边的数外,任何一个数为上两顶数之和,即 a[i][j] = a[i-1][j-1] + a[i-1][j]。最后输出杨辉三角。代码如下:

        #include <stdio.h>
        #define N 14
        void main()
        {
            int i, j, k, n=0, a[N][N];  /*定义二维数组a[14][14]*/
      
            printf("请输入要打印的行数:");
            scanf("%d",&n);
            
            printf("%d行杨辉三角如下:\n",n);
            for(i=1;i<=n;i++)
                a[i][1] = a[i][i] = 1;  /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
            for(i=3;i<=n;i++)
                for(j=2;j<=i-1;j++)
                    a[i][j]=a[i-1][j-1]+a[i-1][j];  /*除两边的数外都等于上两顶数之和*/ 
            for(i=1;i<=n;i++){
                for(k=1;k<=n-i;k++)
                    printf("   ");  /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
                for(j=1;j<=i;j++)  /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
                    printf("%6d",a[i][j]);
                
                printf("\n");  /*当一行输出完以后换行继续下一行的输出*/
            }
            printf("\n");
        }
    
    

    运行结果:

    在这里插入图片描述

    方法二

    杨辉三角的任意一行都是的二项式系数

    在这里插入代码片
    

    在这里插入图片描述

        #include <stdio.h>
        /* 
         * 定义阶乘,在这里可能会想。为什么要用float,当我试第一次的时候,
         * 如果用int的话,那么在打印行数多了以后就会出错。
         * 这是因为阶乘的数比较大,如果用int就不够用了。下同
         */
        float J(int i){
            int j;
            float k=1;
            for(j=1;j<=i;j++)
                k=k*j;
            return(k);
        }
        float C(int i,int j){  /*定义组合数*/
            float k;
            k=J(j)/(J(i)*J(j-i));
            return(k);
        }
        void main(){
            int i=0,j,k,n;  /*打印杨辉三角*/ 
            while(i<=0||i>16){
                printf("请输入要打印的行数:");
                scanf("%d",&i);
            }
            printf("%d行杨辉三角如下:\n",i);
            for(j=0;j<i;j++){
                for(k=1;k<=(i-j);k++)
                    printf("  ");
                for(n=0;n<=j;n++)
                    printf("%4.0f",C(n,j));
                printf("\n");
            }
            printf("\n\n");
        }
    

    运行解果:

    在这里插入图片描述

    展开全文
  • 杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言杨辉三角的关键之一。在...

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。

    在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1。也就是说任何一个数等于这个是高中的组合数。n代表行数减1,不代表列数减1。如:第五行的第三个数就为=6。

    现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为1,即当每行的第一个数和最后一个数为1。a[i][0]=a[i][i-1]=1,n为行数。除两边的数外,任何一个数为上两顶数之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。最后输出杨辉三角。代码如下:

    #include

    #define N 14

    void main()

    {

    int i,j,k,n=0,a[N][N]; /*定义二维数组a[14][14]*/

    while(n<=0||n>=13){ /*控制打印的行数不要太大,过大会造成显示不规范*/

    printf("请输入要打印的行数:");

    scanf("%d",&n);

    }

    printf("%d行杨辉三角如下:\n",n);

    for(i=1;i<=n;i++)

    a[i][1] = a[i][i] = 1; /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/

    for(i=3;i<=n;i++)

    for(j=2;j<=i-1;j++)

    a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除两边的数外都等于上两顶数之和*/

    for(i=1;i<=n;i++){

    for(k=1;k<=n-i;k++)

    printf(" "); /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/

    for(j=1;j<=i;j++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/

    printf("%6d",a[i][j]);

    printf("\n"); /*当一行输出完以后换行继续下一行的输出*/

    }

    printf("\n");

    }

    运行结果:

    请输入要打印的行数:10

    10行杨辉三角如下:

    1

    1 1

    1 2 1

    1 3 3 1

    1 4 6 4 1

    1 5 10 10 5 1

    1 6 15 20 15 6 1

    1 7 21 35 35 21 7 1

    1 8 28 56 70 56 28 8 1

    1 9 36 84 126 126 84 36 9 1

    上面的这一种方法我们用到了二维数组,下面的这一方法我们将用到自定义函数。

    在高中我们知道,杨辉三角中的任何一个数都等于一个组合数,现在我们用这一公式来做。首先,此方法代码如下:

    #include

    /*

    * 定义阶乘,在这里可能会想。为什么要用float,当我试第一次的时候,

    * 如果用int的话,那么在打印行数多了以后就会出错。

    * 这是因为阶乘的数比较大,如果用int就不够用了。下同

    */

    float J(int i){

    int j;

    float k=1;

    for(j=1;j<=i;j++)

    k=k*j;

    return(k);

    }

    float C(int i,int j){ /*定义组合数*/

    float k;

    k=J(j)/(J(i)*J(j-i));

    return(k);

    }

    void main(){

    int i=0,n; /*打印杨辉三角*/

    while(i<=0||i>16){

    printf("请输入要打印的行数:");

    scanf("%d",&i);

    }

    printf("%d行杨辉三角如下:\n",i);

    for(j=0;j

    for(k=1;k<=(i-j);k++)

    printf(" ");

    for(n=0;n<=j;n++)

    printf("%4.0f",C(n,j));

    printf("\n");

    }

    printf("\n\n");

    }

    运行结果:

    请输入要打印的行数:10

    10行杨辉三角如下:

    1

    1 1

    1 2 1

    1 3 3 1

    1 4 6 4 1

    1 5 10 10 5 1

    1 6 15 20 15 6 1

    1 7 21 35 35 21 7 1

    1 8 28 56 70 56 28 8 1

    1 9 36 84 126 126 84 36 9 1

    这个方法主要就是要知道组合数的表示。还有如果自定义函数。但是这种方法产生的数据比较大,不建议用这种方法。

    总结

    以上是编程之家为你收集整理的C语言打印杨辉三角示例汇总全部内容,希望文章能够帮你解决C语言打印杨辉三角示例汇总所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    小编个人微信号 jb51ccc

    喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

    展开全文
  • C语言 打印杨辉三角

    2021-01-12 21:46:13
    打印杨辉三角 本题要求按照规定格式打印前N行杨辉三角。 输入格式: 输入在一行中给出N(1≤N≤10)。 输出格式: 以正三角形的格式输出前N行杨辉三角。每个数字占固定6位。 输入样例: 6 输出样例: 1 1 1 1 ...

    打印杨辉三角

    本题要求按照规定格式打印前N行杨辉三角。

    输入格式: 输入在一行中给出N(1≤N≤10)。
    输出格式: 以正三角形的格式输出前N行杨辉三角。每个数字占固定6位。
    输入样例:

    6

    输出样例:

                    1
                 1     1
              1     2     1
           1     3     3     1
        1     4     6     4     1
     1     5    10    10     5     1
    

    代码如下:

    #include "stdio.h"
    int main()
    {
    	int i,j,k,n;
    	scanf("%d",&n);
    	int a[n][n];
    	for(i=0;i<n;i++)
    	{
    		a[i][0]=1;//每行第一个为1 
    		a[i][i]=1;//每行最后一个为1 
    	}
    	for(i=2;i<n;i++)//以下未知 
    		for(j=1;j<i;j++)
    			a[i][j]=a[i-1][j-1]+a[i-1][j];
    	for(i=0;i<n;i++)
    	{
    		for(k=1;k<n-i;k++)
    			printf("   ");//上下两行相邻数字之间的空格数 
    		for(j=0;j<=i;j++)
    			printf("%6d",a[i][j]);
    		printf("\n");
    	}
    	return 0;
    }
    

    涉及:二维数组
    注意:空格的输出 三角形内测数字的输出

    展开全文
  • 杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言杨辉三角的关键之一。在...

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。

    在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1。也就是说任何一个数等于这个是高中的组合数。n代表行数减1,不代表列数减1。如:第五行的第三个数就为=6。

    现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为1,即当每行的第一个数和最后一个数为1。a[i][0]=a[i][i-1]=1,n为行数。除两边的数外,任何一个数为上两顶数之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。最后输出杨辉三角。代码如下:

    #include <stdio.h>
    #define N 14
    void main()
    {
        int i, j, k, n=0, a[N][N];  /*定义二维数组a[14][14]*/
        while(n<=0||n>=13){  /*控制打印的行数不要太大,过大会造成显示不规范*/
            printf("请输入要打印的行数:");
            scanf("%d",&n);
        }
        printf("%d行杨辉三角如下:\n",n);
        for(i=1;i<=n;i++)
            a[i][1] = a[i][i] = 1;  /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
        for(i=3;i<=n;i++)
            for(j=2;j<=i-1;j++)
                a[i][j]=a[i-1][j-1]+a[i-1][j];  /*除两边的数外都等于上两顶数之和*/ 
        for(i=1;i<=n;i++){
            for(k=1;k<=n-i;k++)
                printf("   ");  /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
            for(j=1;j<=i;j++)  /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
                printf("%6d",a[i][j]);
            
            printf("\n");  /*当一行输出完以后换行继续下一行的输出*/
        }
        printf("\n");
    }

     运行结果:

    请输入要打印的行数:10
    10行杨辉三角如下:
                                    1
                                 1     1
                              1     2     1
                           1     3     3     1
                        1     4     6     4     1
                     1     5    10    10     5     1
                  1     6    15    20    15     6     1
               1     7    21    35    35    21     7     1
            1     8    28    56    70    56    28     8     1
         1     9    36    84   126   126    84    36     9     1

    上面的这一种方法我们用到了二维数组,下面的这一方法我们将用到自定义函数。

    在高中我们知道,杨辉三角中的任何一个数都等于一个组合数,现在我们用这一公式来做。首先,此方法代码如下:

    #include <stdio.h>
    /* 
     * 定义阶乘,在这里可能会想。为什么要用float,当我试第一次的时候,
     * 如果用int的话,那么在打印行数多了以后就会出错。
     * 这是因为阶乘的数比较大,如果用int就不够用了。下同
     */
    float J(int i){
        int j;
        float k=1;
        for(j=1;j<=i;j++)
            k=k*j;
        return(k);
    }
    float C(int i,int j){  /*定义组合数*/
        float k;
        k=J(j)/(J(i)*J(j-i));
        return(k);
    }
    void main(){
        int i=0,j,k,n;  /*打印杨辉三角*/ 
        while(i<=0||i>16){
            printf("请输入要打印的行数:");
            scanf("%d",&i);
        }
        printf("%d行杨辉三角如下:\n",i);
        for(j=0;j<i;j++){
            for(k=1;k<=(i-j);k++)
                printf("  ");
            for(n=0;n<=j;n++)
                printf("%4.0f",C(n,j));
            printf("\n");
        }
        printf("\n\n");
    }

    运行结果:

    10行杨辉三角如下:
                           1
                         1   1
                       1   2   1
                     1   3   3   1
                   1   4   6   4   1
                 1   5  10  10   5   1
               1   6  15  20  15   6   1
             1   7  21  35  35  21   7   1
           1   8  28  56  70  56  28   8   1
         1   9  36  84 126 126  84  36   9   1

     这个方法主要就是要知道组合数的表示。还有如果自定义函数。但是这种方法产生的数据比较大,不建议用这种方法。

    展开全文
  • 原标题:C语言打印杨辉三角代码及解析杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是...
  • C语言打印杨辉三角(两种方法)

    千次阅读 2020-11-04 03:59:21
    环境:vs2012 代码: #include <stdio.h> #define N 14 ...=13){ /*控制打印的行数不要太大,过大会造成显示不规范*/ printf("请输入要打印的行数:"); scanf("%d",&n); } printf("%
  • c语言打印杨辉三角

    2021-11-16 22:09:22
    [杨辉三角](https://img-blog.csdnimg.cn/8f0966288eda4f3d95d35fa61cd8b1f3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAPz89LT89ODg4OTk5,size_14,color_FFFFFF,t_70...
  • C语言打印杨辉三角的多种方法

    万次阅读 多人点赞 2018-10-04 00:21:54
    3.在屏幕上打印杨辉三角。 1 1 1 1 2 1 1 3 3 1 解法一: #define _CRT_SECURE_NO_WARNINGS 1 #include &lt;stdio.h&gt; int main() {  int i,j,n = 0;  //首先定义二维数组计数符号i,j 还有杨辉三角...
  • 杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言杨辉三角的关键之一。在...
  • C语言打印杨辉三角

    2020-12-12 14:54:40
    打印杨辉三角 杨辉三角:是一个无限对称的数字金字塔,从顶部的单个1开始,每行的第一个元素和最后一个元素(肩上只有一个元素)为1,其他元素(肩上都有两个元素)等于肩上两个元素的和。 我们以8层的杨辉三角为例...
  • c语言打印杨辉三角形(运用数组)

    千次阅读 2019-03-02 17:22:52
    #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &...请输入需要打印的行数:"); scanf("%d", &amp;num); for (i = 0; i&lt;100; i++...
  • 谭浩强C程序设计(第五版)课后作业中一个题目是打印杨辉三角 首先我们了解一下什么是杨辉三角杨辉三角的特点: 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n...
  • C语言打印杨辉三角

    万次阅读 多人点赞 2016-01-11 00:12:23
    C语言打印杨辉三角 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。这是杨辉三角
  • 杨辉三角形是一个由数字排列组成的三角形数表。其一般形式如图 1 所示,每行开始和结尾处的数字都为 1,其他数字都是它所在行的上一行中靠近它的两个数之和。图 1:杨辉三角形请编程输出其中的前 n(n≤20)行。问题...
  • C语言在屏幕上打印杨辉三角 杨辉三角 运行结果图 代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<assert.h> //杨辉三角 #if 1 void yanghui_triangle(int num) { int arrdate...
  • C语言实现打印杨辉三角 杨辉三角如下图所示: 从图中可以看出杨辉三角中的数据有以下特点: 1.第0列及对角线上的所有元素都为1 2.其它位置的元素为上一行与该元素同列及前一列的元素相加的结果 根据上述杨辉三角中...
  • 本文实例讲述了C语言实现杨辉三角的方法,分享给大家供大家参考。 具体实现方法如下: #include using namespace std; void printYangHui(int line) { int **array = new int*[line]; for (int i = 0; i < ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,924
精华内容 1,969
关键字:

c语言打印杨辉三角

c语言 订阅