C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 569|回复: 22

[求助] 有趣图形!!各位大侠帮帮我 [复制链接]

Rank: 3Rank: 3

主题
11
帖子
40
C币
177 枚
在线时间
9 小时
发表于 2011-11-26 15:22:37 |显示全部楼层
分享到:
    1   3    8   20
         2    5   12
               3     7
                      4
输出结果如上


问题:
输入一个整数n(n≤12),打印出如下要求的方阵:左上到右下对角线上的数与行数相同,右上半个区域中每个元素等于左边的和下面的元素之和。每个元素所占宽度为5。左下半个区域为空。

输入说明:
一个整数n(n≤12)

n*n的方阵(场宽为5)。

输入样式:
4
输出样式:

Rank: 4

主题
3
帖子
97
C币
303 枚
在线时间
27 小时
发表于 2011-11-28 20:17:33 |显示全部楼层
还挺难的,编了一下。请多多更正。
#define n 6  
#define E for(i=0;i<n;i++)
#define F for(j=0;j<n;j++)
main()
{ int a[n][n]={0},i,j,k,m;
        for(k=0;k<n;k++)
        {E
         F
             {m=j-k; if(k==0&&i==j) a[i][j]=i+1; else if(i==m) a[i][j]=a[i][j-1]+a[i+1][j];}
          }   
   E
   {F  
     {if(a[i][j]==0 printf("     "); else printf("%5d",a[i][j]);}
       printf("\n");
    }
printf("\n");
}



  {

点评

volcanol  跟 10 楼学吧  发表于 2012-1-28 17:59:22
333333333333333  哪里需更正,诚心请教。多谢!  发表于 2011-11-28 22:24:14
volcanol  这样的代码风格面试的时候,等着挂吧  发表于 2011-11-28 21:53:45

Rank: 2

主题
6
帖子
32
C币
107 枚
在线时间
7 小时
发表于 2011-11-28 21:06:03 |显示全部楼层
#include "stdio.h"
main()
{
        printf("1 3 8 20\n");
        printf("  2 5 12\n");
        printf("    3  7\n");
        printf("       4");
   
}

Rank: 3Rank: 3

主题
11
帖子
40
C币
177 枚
在线时间
9 小时
发表于 2011-11-28 21:18:15 |显示全部楼层
xiaomu 发表于 2011-11-28 21:06
#include "stdio.h"
main()
{

....这样是不可以的

Rank: 4

主题
3
帖子
97
C币
303 枚
在线时间
27 小时
发表于 2011-11-28 21:22:17 |显示全部楼层
呵呵。

Rank: 3Rank: 3

主题
11
帖子
40
C币
177 枚
在线时间
9 小时
发表于 2011-11-28 21:22:39 |显示全部楼层
333333333333333 发表于 2011-11-28 20:17
还挺难的,编了一下。请多多更正。
#define n 6  
#define E for(i=0;i

在Vc里运行不起来。。。

点评

333333333333333  呵呵,这么难看的代码,本人现在确实想要删除掉  发表于 2012-1-26 14:20:58

Rank: 4

主题
3
帖子
97
C币
303 枚
在线时间
27 小时
发表于 2011-11-28 21:30:59 |显示全部楼层
我用的是turbo 2.01。哪里下载Vc?

Rank: 1

主题
3
帖子
14
C币
40 枚
在线时间
1 小时
发表于 2011-11-28 21:37:36 |显示全部楼层
哈哈  上面那个是直接用printf输出了

Rank: 4

主题
3
帖子
97
C币
303 枚
在线时间
27 小时
发表于 2011-11-28 22:48:11 |显示全部楼层
333333333333333 发表于 2011-11-28 20:17
还挺难的,编了一下。请多多更正。
#define n 6  
#define E for(i=0;i

最下面的分号是多余的

Rank: 2

主题
0
帖子
9
C币
78 枚
在线时间
9 小时
发表于 2011-12-2 17:12:44 |显示全部楼层
本帖最后由 小辉辉@嘉兴 于 2011-12-2 18:08 编辑
  1. #include <stdio.h>
  2. #define n 12
  3. void main()
  4. {
  5.         int a[n][n]={0};
  6.         for(int i=0;i<n;i++){
  7.         a[i][i]=i+1;
  8.         }
  9.         for(int j=n-2;j>=0;j--){
  10.                 for(int k=j;k<=n-2;k++){
  11.                                 a[j][k+1]=a[j][k]+a[j+1][k+1];
  12.                 }
  13.         }


  14.         for(int m=0;m<n;m++){
  15.                 for(int h=0;h<n;h++){
  16.                         if(a[m][h]!=0){
  17.                         printf("%5d",a[m][h]);
  18.                         }
  19.                         else{
  20.                         printf("     ");
  21.                         }
  22.                 }
  23.                 printf("\n");
  24.         }
  25. }
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?加入社区!
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-23 15:22

©2009-2011 cyuyan.com.cn

回顶部