| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1596 人关注过本帖
标题:请问如何打印这些"*"号
只看楼主 加入收藏
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
 问题点数:0 回复次数:10 
请问如何打印这些"*"号
在书上看到这一题,不知道算法是怎样的,请给个思路出来,这一题是在学完循环之后的题,想了很多,可就是没有一个合适的思路,多谢指点。谢谢。
题目  打印以出以下图案。
               *
             * * *
           * * * * *
         * * * * * * *
           * * * * *
             * * *
               *

就是这样的题,不知道怎么用for来实现。
我的大概思路是这样的:
for (j=1; j<=7; j++)  /* 一共7行,用j实现 */
{
    for (i=1; i<=7; i+2)   /*  每行上面最多有7个*,想用i实现,可是有些不对,可能我的思路不对,请给出正确思路,谢谢了。  */
        {
              i='*';
              printf( "%c", i);
        }
}
搜索更多相关主题的帖子: 打印 思路 图案 算法 
2007-12-02 15:28
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
老师喊交的作业,不过我已经扩展到N个了
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N;    //要打印的菱形的大小:3 5 7 9 ......
int Fstar=1,Lstar=1;   //记录星数,初始化为1
int Fspace,Lspace;    //记录空格
int _Max;      //记录最大行,_Max=(N+1)/2
int _count=1;    //记录计数行,初始化为1
printf("输入要打印菱形的大小[>=3&&<=79的奇数]:  ");
scanf("%d",&N);
_Max=(N+1)/2;
Fspace=(N-1)/2;

if(N<=0||N%2==0||N>79)
{
   if(N>79)
  {
     printf("超出窗口,不能正常打印菱形!\n");
     exit(0);
  }
  else
  {
   printf("不能打印菱形!\n");
   exit(0);
  }
}
else
{
  /*  *****************打印菱形*********************************/
     for(int i=0;i<N;i++)
  {
      if(_count<=_Max) //打印_Max以前的行
   {
         int temp1=Lspace=Fspace;  //临时存放空格
            int temp2=Lstar=Fstar;  //临时存放星数
          Lspace++;  //随时设置_Max行以后的空格
           Lstar-=2;  //随时设置_Max行以后的星数
               for(;Fspace!=0;Fspace--)
      {
                printf(" ");
      }
             for(;Fstar!=0;Fstar--)
       {
               printf("*");
       }
                printf("\n");
                  Fspace=temp1-1;  //更新空格
                  Fstar=temp2+2;   ///更新星数
                  _count++;   //更新行数
   }
       else  //打印_Max以后的行
   {
             int temp1=Lspace;
                int temp2=Lstar;
          for(;Lspace!=0;Lspace--)
       {
             printf(" ");
       }
          for(;Lstar!=0;Lstar--)
       {
           printf("*");
       }
              printf("\n");
              Lspace=temp1+1;  //更新空格
                 Lstar=temp2-2;   //更新星数
               _count++;    //更新行数
   }
  }
}
return 0;
}

樱花大战,  有爱.
2007-12-02 15:34
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
哇,谢谢
你的这个功能太强了,我要慢慢消化一下。
2007-12-02 16:06
lw2007
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-12
收藏
得分:0 
打印菱形时 这样可不可以
for(i=1;i<=n;i++)
{
if(i<=(n+1)/2

for(j=(n+1)/2;j<=2*n-1;j++)
printf("*");
printf("\n");

}
else
for(j= i-(n+1)/2;j<=2*(n-j)-1;j++)
printf("*");

printf("\n");
}
2007-12-02 16:15
lw2007
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-12
收藏
得分:0 
改一下 把中间的"}"去掉
for(i=1;i<=n;i++)
{
if(i<=(n+1)/2

for(j=(n+1)/2;j<=2*n-1;j++)
printf("*");
printf("\n");


else
for(j= i-(n+1)/2;j<=2*(n-j)-1;j++)
printf("*");

printf("\n");
}
2007-12-02 16:20
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
楼上的
N在前面定义等于几呀,谢谢。
正在试你的代码。
2007-12-02 16:35
mndren
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-11-17
收藏
得分:0 
楼主,用递归做,不过效率没有for那么高!但是代码很少,嘿嘿!
2007-12-02 16:54
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
N是你要输入的数,根据图像,应输入奇数~但是不能超过79,因为超屏不能正常显示~

樱花大战,  有爱.
2007-12-02 17:19
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
#include<stdio,h>
#include<math.h>
int main(void)
{
        int i,j,k;
        for(i=-3;i<=3;i++)
        {
                for(j=0;j<abs(I);J++)
                 {
                        printf(" ");
                }
                for(k=0;k<7-abs(i)*2;k++)
                {
                        printf("*");
                }
                printf("\n");
        }
        return 0;
}
//此为书本的答案,可参考下。
2007-12-02 20:05
林温刚
Rank: 1
来 自:莆田华亭
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-12-1
收藏
得分:0 
找答案
用for怎样打印
****************
 ****************
  ****************
   ****************
2007-12-03 11:33
快速回复:请问如何打印这些"*"号
数据加载中...
 
   



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

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