码迷,mamicode.com
首页 > 系统相关 > 详细

linux c:关联变量的双for循环

时间:2016-07-18 15:21:20      阅读:487      评论:0      收藏:0      [点我收藏+]

标签:

举例说明:

比如打印一个倒三角形。

* * * *

 * * *

  * *

   *

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

这就是关联变量的双层循环。我的做法是,先设计第一层变量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;
}

linux c:关联变量的双for循环

标签:

原文地址:http://www.cnblogs.com/litifeng/p/5680061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!