首页 > 系统服务 > 详细

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

时间:2016-07-18 15:19:25      阅读:259      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!