新手问一个Print Graphics Problerm ,初学,求解答。

zeal_sec 2014-10-30 02:49:27
Description

向标准输出上打印一些用ASCII字符组成的图形。
Input

输入为多个整数n,0<n<100。当n为0时结束输入。
Output

若n为偶数,则输出一个正向的n层等腰三角形;n为奇数,则输出一个倒向的n层等腰三角形。三角形由“+”组成。任意两个图形之间有一个空行分隔。


我的代码:
#include <stdio.h>
int main()
{
int a,i,j;
scanf("%d",&a);
if (a%2==0)
{
for(i=1;i<=a;i++)
{
for(j=1;j<=a+i-1;j++)
{
if(j<=a-i)
{
printf(" ");
}
else printf("+");
}
printf("\n");
}
}
else
{
for(i=1;i<=a;i++)
{
for (j=1;j<=a;j++)
{
if (j<a)
printf("+");

}
}
}

return 0;
}


当输入奇数的时候,不会输出空格,想问一下该怎么改?
...全文
372 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
常书 2014-10-30
  • 打赏
  • 举报
回复
if (a%2==0)条件成立时为偶数,你往这里面看,底下的printf(" ");就用来输出空格 而奇数走的是下面的这些语句:

    else
    {
        for(i=1;i<=a;i++)
        {
            for (j=1;j<=a;j++)
            {
            if (j<a)
                printf("+");
         
            }
        }
    }
这里没地方输出空格,问题就在这里,补上空格吧(貌似楼上代码就是,你测试下)
勤奋的小游侠 2014-10-30
  • 打赏
  • 举报
回复
#include <stdio.h> int main() { int a,i,j; scanf("%d",&a); if (a%2==0) { for(i=1;i<=a;i++) { for(j=1;j<=a+i-1;j++) { if(j<=a-i) { printf(" "); } else printf("+"); } printf("\n"); } } else { for(i=a;i>=1;i--) { for(j=1;j<=a+i-1;j++) { if(j<=a-i) { printf(" "); } else printf("+"); } printf("\n"); } } return 0; }

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧