鱼C论坛

 找回密码
 立即注册
查看: 1049|回复: 3

[已解决]0基础入门C语言for循环应用,绝对的0基础

[复制链接]
发表于 2018-12-6 21:57:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼课程,循环控制结构程序
结果如下:
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
***********
**********
*********
********
*******
******
*****
****
***
**
*
代码如下:
        int i,j,q=20;
       
        for (i = 1; i < q; i++)
        {
                for (j=1;j<i;j++)
                {
                        putchar('*');
                }
                printf("\n");
        }
       
        loop:for (i = 1; i < q; i++)
        {
                putchar('*');
        }
        if (i == q)
        {
                printf("\n");
                q -= 1;
                goto loop;
        }
}
请高手指点优化
最佳答案
2018-12-6 23:19:03
本帖最后由 rencaixiaomeng 于 2018-12-6 23:20 编辑

#include <stdio.h>

int main(void)
{

        int a, i, j, p = 10, q = 20;

        for (i = 0; i <= q; i++)
        {

                a = i < p ? i : q - i;
                for (j = 0;j <= a;j++)
                {
                        putchar('*');
                }
                printf("\n");
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-6 23:19:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 rencaixiaomeng 于 2018-12-6 23:20 编辑

#include <stdio.h>

int main(void)
{

        int a, i, j, p = 10, q = 20;

        for (i = 0; i <= q; i++)
        {

                a = i < p ? i : q - i;
                for (j = 0;j <= a;j++)
                {
                        putchar('*');
                }
                printf("\n");
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 09:55:38 | 显示全部楼层
之前看到的视频说(别的网站),最好不要用goto,指来指去代码可读性会降低
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 13:03:51 | 显示全部楼层
本帖最后由 csilovelxl 于 2018-12-7 17:43 编辑

#include <stdio.h>
#include <math.h>
int main(void)
{

        int  i, j, p = 11, q = 21;
        //打印21行
        for (i = 1; i <= q; i++)
        {

              //最大输出11个*,设p=11,根据i的增长,通过p-i的绝对值判断需要输出多少个*,我感觉这有点像补码
                for (j=p-abs(p-i);j>0;j--)
                {
                        putchar('*');
                }
                printf("\n");
        }
        return 0;
}
//代码是我看二楼修改的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 00:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表