回 帖 发 新 帖 刷新版面

主题:输图案的程序请高手修改

/*根据参数 n ,在屏幕上输出如下图案

                         *

                        ***

                       *****

其中, 第1行的第一个 *  在当前行的中间一列.  n 表示输出 n 行 .

由于屏幕列宽为 80 个 字符, 所以 当  n >=  40 时, 要打印的 * 数目将超出 80, 此时要求反向打印, 即

   
                      *****

                       ***

                        *

 示例
 

假定 手机屏幕 为 6 列 , 输入参数 n 为 6,   则程序在手机上的运行结果为

 

    * 
   
   ***

  *****

   ***

    *

   ***

 

*/


#include<stdio.h>
#include<conio.h>
int main()
{
 int n,i,j,k;
 printf("please input an integer\n");
 scanf("%d",n);    
 for(i=0;i<n;i++)
       {
         if( ((i%80)>=0)&&((i%80)<=39) )
             j=2*i+1;
         else
             j=157-2*i;  
         for(k=1;k<39-j;k++)
             printf(" ");
         for(k=39-j;k<40+j;k++)
             printf("*");
         for(k=40+j;k<81;k++)
             printf(" "); 
         printf("\n");
       }   
    getch();
    return 0;
}

回复列表 (共3个回复)

沙发

scanf("%d",n);  //这里应该是  scanf("%d",&n);

板凳

多谢多谢
犯了这么常识性的错误
惭愧
PS.我的语意还有错误,不过应该可以自行修改
再次表示感谢

3 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册