【新手求助】一个作业题,输出图形,请大家点评。

wode201301 2013-01-28 01:35:54

#include<stdio.h>
#define N 5

int main(void)
{
int i,j;
for (i=0;i<N-1;i++)
printf(" ");
printf("*\n"); //输出第一行

for (i=1;i<N-1;i++)
{
for (j=0;j<N-i-1;j++)
printf(" ");
printf("*");
for (j=0;j<i-1;j++)
printf(" ");
printf("*");
for (j=0;j<i-1;j++)
printf(" ");
printf("*\n");
} //输出上半部分,第一行除外

for (i=0;i<2*N-1;i++)
printf("*");
printf("\n"); //输出中间一行

for (i=1;i<N-1;i++)
{
for (j=0;j<i;j++)
printf(" ");
printf("*");
for (j=0;j<N-i-2;j++)
printf(" ");
printf("*");
for (j=0;j<N-i-2;j++)
printf(" ");
printf("*\n");
} //输出下半部分,最后一行除外

for (i=0;i<N-1;i++)
printf(" ");
printf("*\n"); //输出最后一行

return 0;
}


输出结果图发不上来,大家运行一下就能看到。是一个棱形。
我主要是想问下,有没有更简约的写法。
...全文
290 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonforce 2013-01-31
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
C/C++ code ? 123456789101112131415 #include <stdio.h> int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n" " *……
这回复太神气了, 很逗乐。
bobbie24 2013-01-31
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
C/C++ code?123456789101112131415#include <stdio.h>int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n" " * * *……
真正的所见即所得啊!
xiaoyaoxiaonizi 2013-01-29
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
C/C++ code?123456789101112131415#include <stdio.h>int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n" " * * *……
此乃神人也
赵4老师 2013-01-29
  • 打赏
  • 举报
回复
"12"[0]即'1' "12"[1]即'2'
SNAKE-SNAKE 2013-01-29
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
C/C++ code?123456789101112131415#include <stdio.h>int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n" " * * *……
哈哈!!!!!++++++++++++++++++++++++++++++1
兆帅 2013-01-29
  • 打赏
  • 举报
回复
正在无聊中 2013-01-28
  • 打赏
  • 举报
回复
引用 8 楼 wode201301 的回复:
引用 1 楼 ForestDB 的回复:就是这样找规律啦 所谓简化,就是有更好的“规律” 不过LZ的规律很“直白”,很清楚。 引用 3 楼 yh_1108 的回复:肯定有比你这简单的算法,你输出的菱形的星号有什么要求?你告诉我 我写个给你看 引用 4 楼 lile1234_show 的回复:楼主代码写的不错。 能让人看懂,没BUG ,效率差点"无所谓"……
!!!

putchar(" *"[i==N||j==N||i+j==N+1||i+j==3*N-1||i==j+N-1||j==i+N-1]);
这句??
wode201301 2013-01-28
  • 打赏
  • 举报
回复
引用 1 楼 ForestDB 的回复:
就是这样找规律啦 所谓简化,就是有更好的“规律” 不过LZ的规律很“直白”,很清楚。
引用 3 楼 yh_1108 的回复:
肯定有比你这简单的算法,你输出的菱形的星号有什么要求?你告诉我 我写个给你看
引用 4 楼 lile1234_show 的回复:
楼主代码写的不错。 能让人看懂,没BUG ,效率差点"无所谓",这样就行了。
引用 6 楼 zhao4zhong1 的回复:
所见即所得
引用 7 楼 gjhqq 的回复:
引用 5 楼 zhao4zhong1 的回复: C/C++ code?123456789101112131415#include <stdio.h>int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n"……
运行结果:

        *
       ***
      * * *
     *  *  *
    *   *   *
   *    *    *
  *     *     *
 *      *      *
*****************
 *      *      *
  *     *     *
   *    *    *
    *   *   *
     *  *  *
      * * *
       ***
        *
有网友给出下面的代码,请点评一下。比较一下。

#include<stdio.h>
#define N 9

int main(void)
{
    int i,j;
    int n = (N<<1)-1;
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=n;j++)
            putchar(" *"[i==N||j==N||i+j==N+1||i+j==3*N-1||i==j+N-1||j==i+N-1]);
        putchar('\n');
    }

    return 0;
}
喜欢吃菜 2013-01-28
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
C/C++ code?123456789101112131415#include <stdio.h>int main() { printf( " * \n" " *** \n" " * * * \n" " * * * \n" "*********\n" " * * * \n" " * * *……
正解!!!
赵4老师 2013-01-28
  • 打赏
  • 举报
回复
所见即所得
赵4老师 2013-01-28
  • 打赏
  • 举报
回复
#include <stdio.h>
int main() {
    printf(
    "    *    \n"
    "   ***   \n"
    "  * * *  \n"
    " *  *  * \n"
    "*********\n"
    " *  *  * \n"
    "  * * *  \n"
    "   ***   \n"
    "    *    \n"
    );
    return 0;
}
lee_鹿游原 2013-01-28
  • 打赏
  • 举报
回复
楼主代码写的不错。 能让人看懂,没BUG ,效率差点"无所谓",这样就行了。
天涯洪七公 2013-01-28
  • 打赏
  • 举报
回复
肯定有比你这简单的算法,你输出的菱形的星号有什么要求?你告诉我 我写个给你看
ForestDB 2013-01-28
  • 打赏
  • 举报
回复

    *
   ***
  * * *
 *  *  *
*********
 *  *  *
  * * *
   ***
    *
ForestDB 2013-01-28
  • 打赏
  • 举报
回复
就是这样找规律啦 所谓简化,就是有更好的“规律” 不过LZ的规律很“直白”,很清楚。

69,373

社区成员

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

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