博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux c:关联变量的双for循环
阅读量:5068 次
发布时间:2019-06-12

本文共 907 字,大约阅读时间需要 3 分钟。

举例说明:

比如打印一个倒三角形。

* * * *

 * * *

  * *

   *

第一层循环为行数,第二层循环为每行打印的*数,且随着行数的变化,打印的*数也随着改变。

这就是关联变量的双层循环。我的做法是,先设计第一层变量i=4;i>=1;i--,这样就保证了4行的行数正确打印。

然后,设计第二层变量j=i,j>=1,j--,这样j就能随行数的变化,而打印不同的星星数。和第二层并列的第三层用于输出空格。

比如:第一行i=4,j=4,所以打印4个*号,第二行i=3,则j=4,则打印3个*号,等等依次类推,最后打印除倒立的星星图。

完整程序如下:

#include <stdio.h>                                                                                                                             

int main(void)
{
    for(int i=4;i>=1;i--){
        for(int j=i;j>=1;j--){
            printf("* ");
        }
        printf("\n");
        for(int k=i-1;k<4;k++){
            printf(" ");
        }
    }   
    printf("\n");
    return 0;
}
注意条件里面的大于和小于号的判断。另外:如果k<=4,那么就会在第二行输出2个空格,导致不对称。

另外一个例子:十转八进制

/*十进制化为八进制普通版。

 * 注意这种关联变量的双层for循环的用法
 *
 */
#include <stdio.h>
int main(void)
{
    int number;
    int jinzhi=8;
    int weishu=5;
    printf("Enter a number(5wei):");
    scanf("%d",&number);
    printf("%o\n",number);
    for(int i=weishu;i>=1;i--){
        int temp=number;
        for(int j=i-1;j>=1;j--){
            temp/=jinzhi;
        }
        temp%=jinzhi;
        printf("%d",temp);
        
    }
    printf("\n");
    return 0;
}

转载于:https://www.cnblogs.com/litifeng/p/5680061.html

你可能感兴趣的文章
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
django Models 常用的字段和参数
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>