| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2302 人关注过本帖
标题:[求助]谁能写个杨辉三角形的代码
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
程序代码:
#include <stdio.h>

#define N 10

int yh(int i,int j) {
    if (i==0 || j==0 || j == i)
        return 1;
    return yh(i-1,j-1)+yh(i-1,j);
}

int main() {
    int i,j;
    for (i=0;i<N;i++) {
        for (j=0;j<=i;j++)
            if (j == 0)
                printf("%*d",(N-i)*2,yh(i,j));
            else
                printf("%4d",yh(i,j));
        putchar('\n');
    }
    getchar();
}
不用数组?那样很慢耶……

[[italic] 本帖最后由 StarWing83 于 2007-12-20 17:59 编辑 [/italic]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-20 17:57
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
收藏
得分:0 
这是我写的代码
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{int a[10][10],i,j,k;
    for(i=0;i<10;i++)
    for(j=0;j<=i;j++)
    {
        if(i==j||j==0)
        a[i][j]=1;
        else
        a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
    for(i=0;i<10;i++)
      { for(k=0;k<=10-i;k++)
              printf("   ");
          for(j=0;j<=i;j++)
        
        printf("%6d",a[i][j]);
        printf("\n");
              
      }
}

呵呵,也是初学时写的,请大家多多指教,也是用二维数组写的代码.
2007-12-20 22:37
iaai315313
Rank: 1
等 级:等待验证会员
帖 子:7
专家分:0
注 册:2007-4-27
收藏
得分:0 
呵呵,你也在看"数据结构"吗?刚好以前初学时也写了个,队列实现,又臭又长,勿笑.
/*////////////////Queue.h///////////////*/
#include <stdio.h>
#include <stdlib.h>

#define SIZE 100
typedef int ElemType;
typedef struct Queue
{
    ElemType data[SIZE];
    int front,rear;
}SeQueue;

void InitQueue(SeQueue **q)
{
    *q=(SeQueue *) malloc (sizeof(SeQueue));
    (*q)->front=0;
    (*q)->rear=0;
}

int QueueEmpty(SeQueue *q)
{
    return(q->front==q->rear);
}

int QueueFull(SeQueue *q)
{
    return((q->rear+1)%SIZE==q->front);
}

void EnQueue(SeQueue *q,ElemType e)
{
    if(QueueFull(q))
        printf("Queue is Full!\n ");
    else
    {
        q->data[q->rear]=e;
        q->rear=(q->rear+1)%SIZE;
    }
}

void DeQueue(SeQueue *q,ElemType &e)
{
    if(QueueEmpty(q))
        printf("Queue is Empty!\n");
    else
    {
        e=q->data[q->front];
        q->front=(q->front+1)%SIZE;
    }
}

void GetTop(SeQueue *q,ElemType &e)
{
    if(QueueEmpty(q))
        printf("Queue is Empty!\n");
    else
    {
        e=q->data[q->front];
    }
}

void GetLen(SeQueue *q,int &l)
{
    if(QueueEmpty(q))
        printf("Queue is Empty!\n");
    else
    {
        int tmp=q->front;
        for(;tmp!=q->rear;tmp++)
        {
            l++;
        }
    }
}

void display(SeQueue *q)
{
    if(QueueEmpty(q))
        printf("Queue is Empty!\n");
    else
    {   
        int tmp=q->front;
        printf("\n------------------\n");
        for(;tmp!=q->rear-1;tmp++)
        {
            printf("%d ",q->data[tmp]);
        }
        printf("\n------------------\n");
    }
}

 

 
/*////////////////yanghui.c///////////////*/
#include "Queue.h"

int main()
{
    int s,e;
    SeQueue *my;
    InitQueue(&my);
    EnQueue(my,0);
    EnQueue(my,1);
    EnQueue(my,0);

    int n,i;
    for(n=0;n<10;n++)
    {
        for(i=1;i<=10-n;i++)
            printf("%2c",'  ');
        do{
            DeQueue(my,s);
            GetTop(my,e);
            if(!e) printf("\n");
            else printf("%3d ",e);
            EnQueue(my,s+e);
        }while(e!=0);
        EnQueue(my,0);
    }
    display(my);
    return 0;
}

[[italic] 本帖最后由 iaai315313 于 2007-12-21 14:04 编辑 [/italic]]
2007-12-21 14:00
iaai315313
Rank: 1
等 级:等待验证会员
帖 子:7
专家分:0
注 册:2007-4-27
收藏
得分:0 
初学时写的,很不"规范",改了几遍,还是很多;
希望没有误导LZ
(数据结构C版-严蔚敏)[url]http://blog.[/url]
[local]2[/local]

[[italic] 本帖最后由 iaai315313 于 2007-12-21 14:11 编辑 [/italic]]
2007-12-21 14:05
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-12-21 17:52
gxl1127
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-6-12
收藏
得分:0 
回复
#include<stdio.h>
void main()
{
    int a[10][10];
    int i,j;
    for(i=0;i<10;i++)
    {
        for(j=0;j<=i;j++)
        {
            if((j==0)||(j==i))
                a[i][j]=1;
            else
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            printf("%5d",a[i][j]);
        }
        printf("\n");
    }
}
2007-12-21 21:51
wjcloudy
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-11-6
收藏
得分:0 
#include<stdio.h>
 int main()
 {
     int a[10][10],i,j;
     for(i=0;i<10;i++)
     {
         for(j=0;j<=i;j++)
         {
             if(j==0 || j==i)
                 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;
 }
在看看我的吧...
2007-12-21 22:09
快速回复:[求助]谁能写个杨辉三角形的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029780 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved