• c语言--部分循环摘录


    1.九九乘法表

    #include <stdio.h>
    int main(int argc,const char *argv[])
    {
        //外层循环--有多少行
        for (int i=1; i<=9; i++) {
           //内层循环--每一行打印的具体条目
            for (int j=1; j<=i; j++) {
                printf("%d*%d=%d ", j, i, i*j);
            }
            printf("
    ");
        }
        return 0;
    }
    

     2.字母金字塔

    //输入:F
    //
    //输出:
    //     F
    //    EFE
    //   DEFED
    //  CDEFEDC
    // BCDEFEDCB
    //ABCDEFEDCBA
    /*
    分析:
         F
        EF  E
       DEF  ED
      CDEF  EDC
     BCDEF  EDCB
    ABCDEF  EDCBA

    */ int main(int argc,const char *argv[]) { char ch; scanf("%c", &ch);
    //外层循环--打印多少行 for (int i=0; i<ch-'A'+1; i++) {
    //打印空格--注意空格数量与 i 的关系 for (int j=0; j<ch-'A'-i; j++) { printf(" "); }
    //打印左半部分字符 for (int j=i; j>=0; j--) { printf("%c", ch-j); }
    //打印有半部分字符 for (int j=0; j<i; j++) { printf("%c", ch-1-j); } printf(" "); } return 0; }
    //    输入:F
    //    输出:
    //    FEDCBA
    //    EDCBAB
    //    DCBABC
    //    CBABCD
    //    BABCDE
    //    ABCDEF
    /*
    分析:同理上
    */ char ch; scanf("%c",&ch); for (int i=0; i<ch-'A'+1; i++) { for (int j=ch-'A'-i; j>=0; j--) { printf("%c",'A'+j); } for (int j=0; j<i; j++) { printf("%c",'A'+j+1); } printf(" "); }
    //输入:F
    //
    //输出:
    //
    //       A
    //     ABA
    //    ABCBA
    //  ABCDCBA
    // ABCDEDCBA
    //ABCDEFEDCBA
    
    int main(int argc,const char *argv[])
    {
        char ch;
        scanf("%c", &ch);
        
        for (int i=0; i<ch-'A'+1; i++) {
            for (int j=0; j<ch-'A'-i; j++) {
                printf(" ");
            }
            for (int j=0; j<=i; j++) {
                printf("%c", 'A'+j);
            }
            for (int j=i; j>0; j--) {
                printf("%c",'A'+j-1);
            }
            printf("
    ");
        }
    
        return 0;
    }
    
    //输入:F
    //
    //输出:
    //
    //FEDCBA
    // EDCBAB
    //  DCBABC
    //   CBABCD
    //    BABCDE
    //     ABCDEF
    
    int main(int argc,const char *argv[])
    {
        char ch;
        scanf("%c", &ch);
        for (int i=0; i<ch-'A'+1; i++) {
            for (int j=i; j>0; j--) {
                printf(" ");
            }
            for (int j= ch-'A'-i;j>=0; j--) {
                printf("%c", 'A'+j);
            }
            for (int j=0; j<i; j++) {
                printf("%c", 'A'+1+j);
            }
            printf("
    ");
        }
        
        return 0;
    }
    

    3.(循环倒置)

    eg.给定一个 5 位的整数,将该数按照 10 进制位逆置,例如给定 12345 变成 54321

        int m;
        scanf("%d",&m);
        int n=0;
        while (m) {
    //取出最后一位数并且向高位移动 n=n*10 + m%10;
    //除去最后一位 m=m/10; } printf("%d ",n); return 0;

     4.(循环得到各位数字)

    eg.将某个 8 位的整数所有位的数值加在一起并输出

        int m;
        scanf("%d",&m);
        int n=0;
        int sum=0;
        while (m) {
    //依次取出每一位 n=m%10; // printf("%d",n); sum=sum+n;
    //去除最后一位 m=m/10; } printf("%d ",sum);

     5.(循环求解"完数")

    eg.找到1000以内的所有”完数”,所谓完数是指一个数是其所有因子之和 如: 6 = 1+2+3;

     for(int i = 1; i <= 1000; i++ )
        {
            int sum = 0;
            for ( int j = 1; j < i; j++)
            {
    //找到符合的数字,添加 if( i % j == 0 ) sum = sum + j; }
    //满足条件 if( i == sum ) printf( "%d ",i); }

    6.最大公约数&最小公倍数

    //最大公约数,最小公倍数   
    //最小公倍数=两整数的乘积÷最大公约数
    
    //辗转相除法
    //    ① a%b得余数c
    //    
    //    ② 若c=0,则b即为两数的最大公约数
    //    
    //    ③ 若c≠0,则a=b,b=c,再回去执行①
        int m,n;
        int a,b,c;
        scanf("%d%d",&a,&b);
        m=a;
        n=b;
        //go
        while (b!=0) {
            c=a%b;
            a=b;
            b=c;//余数赋值
        }
        printf("最大公约数%d
    ",a);
        printf("最小公倍数%d
    ",m*n/a);
    

     eg.输入两个分数,输出两分数之和(要求约分)

        int a,b;
        int m,n;
        scanf("%d/%d",&a,&b);
        scanf("%d/%d",&m,&n);
        int x,y;
        x=a*n+m*b;
        y=b*n;
        //公约数
        int i,j,k;
        i=x;
        j=y;
        while (j!=0) {
            k=i%j;
            i=j;
            j=k;
        }
        printf("
    公约数%d
    ",i);
        printf("%d/%d
    ",x/i,y/i);
    
  • 相关阅读:
    springmvc入门&参数&注解
    springmvc_ssm Spring、SpringMVC、MyBatis集成
    spring-dbutils&注解
    如何快速进去 注册表
    数据库的导出 与导入 速度相当快的方法
    常见的问题:https://localhost:1158/em 无法打开
    卸载windows服务
    用语句创建 表空间、临时表空间、用户 等规则
    游标 根据目录号 操作用户 查看 对应得影像数
    根据 目录号 案卷号 用户名 查询 page 中 的条数
  • 原文地址:https://www.cnblogs.com/sublimter/p/4161252.html
Copyright © 2020-2023  润新知