| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3356 人关注过本帖
标题:字符菱形图案
只看楼主 加入收藏
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
字符菱形图案
void pattern()
{
int i,j;
for(i=0;i<9;i++)
{
cout<<setw(2*(10-i))<<"";
for(j=0;j<2*i=1;j++)
cout<<"# ";
cout<<endl;
}
for(i=9;i>=0;i--)
cout<<setw(2*(10-i))<<"";
for(j=0;j<2*i+1;j++)
cout<<"# ";
cout<<endl;
}

这段代码是怎么判断字符输出在中央位置的,跟setw不是输出项宽度吗??
膜拜大牛,嘻嘻 估计还得是版主pangding嘻嘻 回答谢谢你了
搜索更多相关主题的帖子: 字符菱形图案 
2009-08-08 16:24
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:20 
看上面你的pattern函数也不正确阿,我这个正好显示菱形,setw就是输出宽度,比如
第一次循环:
i=0,
setw(20);
cout<<""后先输出20个空格。
cout<<"# "就是20个空格后再输出#加一个空格。

#include<iostream>
#include<iomanip>      
using namespace std;
void pattern()
{
    int i,j;
    for(i=0;i<9;i++){
        cout<<setw(2*(10-i))<<"";
        for(j=0;j<2*i+1;j++) cout<<"# ";
    cout<<endl;
    }
    for(i=7;i>=0;i--){
    cout<<setw(2*(10-i))<<"";
    for(j=0;j<2*i+1;j++) cout<<"# ";
    cout<<endl;
    }
}
int main(int argc,char** argv)
{
    pattern();
    int p;
    cin>>p;
    return 0;
}
2009-08-08 17:17
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
收藏
得分:0 
回复 2楼 xufen340

谢谢咯 又有新人帮忙解答了

我的博客:http://hi.baidu.com/hk_csm
2009-08-09 12:56
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 楼主 shangke
呵呵,没想到还有人点我~~ 不过人家答的挺好,不用我来了

我以前也写过类似的东西,发上来玩玩。是C语言的,不过使用的方法很类似~
程序代码:
#include <stdio.h>

int main()
{
    int n, i, j, k;
    while (scanf("%d", &n))
        if (n&1) break;
    k = n/2;

    for(i = 0; i <= k; i++) {
        printf("%*c", k-i+1, '*');
        for(j = 0; j < 2*i; j++)
            putchar('*');
        putchar('\n');
    }
    for(; i < n; i++) {
        printf("%*c", i-k+1, '*');
        for(j = 0; j < 2*(n-i-1); j++)
            putchar('*');
        putchar('\n');
    }

    return 0;
}

程序代码:
#include <stdio.h>

int main()
{
    int n = 7, i, j, k;
    while (scanf("%d", &n))
        if (n&1) break;
    k = n/2;

    for(i = 0; i <= k; i++) {
        printf("%*c", k-i+1, '*');
        for(j = 0; j < 2*i; j++)
            putchar(' ');
        printf("\b*\n");
    }
    for(; i < n; i++) {
        printf("%*c", i-k+1, '*');
        for(j = 0; j < 2*(n-i-1); j++)
            putchar(' ');
        printf("\b*\n");
    }

    return 0;
}

输入一个奇数就行了,一个出的是实心菱形,一个是空心的。

2009-08-09 20:35
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
收藏
得分:0 
回复 4楼 pangding

呵呵 可惜结贴咯 要不分你10分了呵呵 非常感谢你还有xufen340的帮助呵呵
膜拜中嘎嘎

我的博客:http://hi.baidu.com/hk_csm
2009-08-09 21:36
快速回复:字符菱形图案
数据加载中...
 
   



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

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