| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 907 人关注过本帖
标题:一个简单的问题
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用zhanghuan_10在2006-11-18 18:12:40的发言:

我写了一个,不过我不会右对齐,呵呵,只能左对齐了!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int i, j, k;

for(j = 1;j < 6;j ++)
{
printf("%d", 1);
for(i = 2;i <= j;i ++)
{
printf("%d", i);
}
for(k = i - 2;k > 0;k --)
{
printf("%d", k);
}
printf("\n");
}

return 0;
}


全部的数右对齐前面输出相应个空格.单个数右对齐用%-d.


倚天照海花无数,流水高山心自知。
2006-11-19 15:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
先弄一个生成数的函数保存在数组里.大致如下
void num(int a[],int k) //第K层的数.
{
int i,j;
for(i=0,j=(k-1)*2;i<j;i++,j--)
{
a[i]=i+1;
a[j]=i+1;
}
}

每行先输出所需格式的空格(以,等腰三角形为例)

for(i=1;i<=N;i++)
{
for(j=1;j<=N-i;j++)
{
printf(" ");
}
num(a,i);
for(j=0;j<2*i-1;j++)
{
printf("%d",a[j]);
}
}




倚天照海花无数,流水高山心自知。
2006-11-19 15:40
快速回复:一个简单的问题
数据加载中...
 
   



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

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