标题:打印一个空菱形,出不来了,大家帮忙看看错在哪?
只看楼主
robin254817
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-10-27
结帖率:100%
已结贴  问题点数:20 回复次数:6 
打印一个空菱形,出不来了,大家帮忙看看错在哪?
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[8][8]={0};
int i=0,j=0;
for(i=1;i<8;i++){
for(j=1;i<8;j++)
{
if((i+j)>5&&(i+j)<11&&(j-i)>-3&&(j-i)<3)
str[i][j]=' ';
else
str[i][j]='*';
}
}
for(i=1;i<8;i++)
for(j=1;j<8;j++)
printf("%c",str[i][j]);
printf("\n");

搜索更多相关主题的帖子: 菱形 打印 
2009-11-07 12:31
robin254817
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-10-27
得分:0 
意思是说,7*7的‘*’中空格出空菱形。大家帮看看吧。
2009-11-07 12:33
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
是不是这个意思?
程序代码:
#include<stdio.h>
#include<math.h>
#define N 7
int main(void)
{
    int i,j,n;
    n=(int)(N/2);
    for(i=-n;i<=n;++i)
    {
        printf("%*c",abs(i)+2,' ');
        printf("%c%*c%c\n",'*',(n-abs(i)+1)*2-3,' ',
                i==-n||i==n?' ':'*');
    }
    return 0;
}

2009-11-07 13:11
robin254817
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-10-27
得分:0 
回复 3楼 广陵绝唱
*******
*** ***
**    **
*       *
**    **
*** ***
*******

这样。。。。
2009-11-07 13:17
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:15 
程序代码:
#include<stdio.h>
#include<string.h>
int main(void)
{
    char str[8][8]={0};
    int i=0,j=0;
    for(i=1;i<8;i++){
        for(j=1;j<8;j++)   // LZ这里失误了···
        {
            if((i+j)>5 &&(i+j)<11&&(j-i)>-3&&(j-i)<3)
                str[i][j]=' ';
            else
                str[i][j]='*';
        }
    }
    for(i=1;i<8;i++)
    {            // 把下面的printf括进大循环中···
        for(j=1;j<8;j++)
            printf("%c",str[i][j]);
        printf("\n");
    }
}
2009-11-07 13:32
robin254817
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-10-27
得分:0 
回复 5楼 lijm1989
呵呵,今天头脑发昏。多谢仁兄指点哪。感激不尽...
2009-11-07 13:56
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:5 
这回正确了:
程序代码:
#include<stdio.h>
#include<math.h>
#define N 7
#define s "*******************"
int main(void)
{
    int i,j,n;
    n=(int)(N/2);
    for(i=-n;i<=n;++i)
    {
        printf("%.*s%*c%.*s\n",
            i==-n||i==n?abs(i):abs(i)+1,s,
            (n-abs(i))*2-1,i==-n||i==n?'*':' ',
            i==-n||i==n?abs(i):abs(i)+1,s);
    }
    return 0;
}

2009-11-07 14:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-291364-1-1.html




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

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