zoukankan      html  css  js  c++  java
  • linux c:关联变量的双for循环

    举例说明:

    比如打印一个倒三角形。

    * * * *

     * * *

      * *

       *

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

    这就是关联变量的双层循环。我的做法是,先设计第一层变量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(" ");
            for(int k=i-1;k<4;k++){
                printf(" ");
            }
        }   
        printf(" ");

        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 ",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(" ");
        return 0;
    }

  • 相关阅读:
    SGU 194. Reactor Cooling(无源汇有上下界的网络流)
    SGU 197.Nice Patterns Strike Back
    Codeforces 474E
    记一个问题的AC
    UVM Primer
    UVM Primer
    UVM Primer
    UVM Primer
    UVM Primer
    UVM Primer
  • 原文地址:https://www.cnblogs.com/litifeng/p/5680061.html
Copyright © 2011-2022 走看看