循环练习

//

//  main.c

//  循环练习

//

//  Created by zhangxueming on 15/5/29.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#include <stdio.h>

//4.循环(计算某个数的位数) 输入一个正整数, 计算这个正整数的位数



//int main(int argc, const char * argv[]) {

//    // insert code here...

//    //printf("Hello, World!\n");

//    //num = 12345;

//    //12345  / 10      cnt++;

//    //1234   / 10      cnt++;

//    //123    / 10      cnt++;

//    //12     / 10      cnt++;

//    //1      / 10      cnt++;

//    //0

//    int num;

//    scanf("%d", &num);

//    int cnt=0;

//    while (num) {

//        cnt++;

//        num/=10;

//    }

//    printf("cnt = %d\n", cnt);

//    return 0;

//}



//9.流程控制(数值序列3)    输出数字序列 1,2,3,5,8,13,21...,输出个数由键盘输入。注意输入使用scanf输入

// a = 1, b=2;   a+b = 3;

// a = 2, b=3;   a+b = 5;

// a = 3, b=5;   a+b = 8;

//\

//比如:

//\

//输入 3输出为

//1

//2

//3

//输入 4 输出为

//1

//2

//3

//5



//int main(int argc, const char *argv[])

//{

//    int n;

//    int a=0,b=1;

//    scanf("%d", &n);

//    for (int i=0; i<n; i++) {

//        int temp = a+b;

//        printf("%d ", temp);

//        a = b;

//        b = temp;

//    }

//    printf("\n");

//    return 0;

//}



//int a=1, b=1;

// a = 2 b=1;

// a= 3 b=2



//10.流程控制(数值序列2)    输出数字序列2/1,3/2,5/3,8/5,13/8,21/13...,输出个数由键盘输入。注意输入使用scanf输入 feibonaqi

//\

//比如:

//输入 3输出为

//2/1

//3/2

//5/3

//输入 4 输出为

//2/1

//3/2

//5/3

//8/5



//int main(int argc, const char *argv[])

//{

//    int n;

//    scanf("%d", &n);

//    int a=1, b=1;

//    for (int i=0; i<n; i++) {

//        printf("%d/%d ", a+b, a);

//        int temp = a+b;

//        b = a;

//        a = temp;

//    }

//    printf("\n");

//    return 0;

//}

//11. 输入一个数a,求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字(1-9 之间)计算的数据的个数是5。例如 2+22+222+2222+22222。

//a  = 3; int temp = a;

//a = a*10+temp a = 33

//a = a*10 +temp  333;

//a = a*10 + temp 3333;



//int main(int argc,const char *argv[])

//{

//    int a;

//    int sum = 0;

//    scanf("%d", &a);

//    int temp = a;

//    

//    for (int i=0; i<5; i++) {

//        sum+=a;

//        a= a*10+temp;

//    }

//    printf("sum = %d\n", sum);

//    return 0;

//}



//12. 输入年月日, 判断是一年中的第多少天

//2015 3 1

//31 + 28 + 1 = 60

//2012 3 1

//31 + 29 + 1 = 61



//int main(int argc,const char *argv[])

//{

//    int year, month, day;

//    int sum = 0;

//    scanf("%d %d %d", &year, &month, &day);

//    for (int i=1; i<month; i++) {

//        switch (i) {

//            case 1:

//            case 3:

//            case 5:

//            case 7:

//            case 8:

//            case 10:

//            case 12:

//                sum+=31;

//                break;

//            case 4:

//            case 6:

//            case 9:

//            case 11:

//                sum+=30;

//                break;

//            case 2:

//                if ((!(year%4)&&year%100)||!(year%400)) {

//                    sum+=29;

//                }

//                else

//                {

//                    sum+=28;

//                }

//                break;

//            default:

//                break;

//        }

//    }

//    printf("sum = %d", sum+=day);

//    return 0;

//}



//int main(int argc,const char *argv[])

//{

//    int i;

//    scanf("%d",&i);

//    

//    switch (i) {

//        case 1:

//            printf("hello world%d\n", i);

//        case 2:

//            printf("hello world%d\n", i);

//        case 3:

//            printf("hello world%d\n", i);

//        case 4:

//            printf("hello world%d\n", i);

//        case 5:

//            printf("hello world%d\n", i);

//            break;

//        default:

//            break;

//    }

//    return 0;

//}



//13.一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第

//10 次落地时,共经过多少米?



//int main(int argc,const char *argv[])

//{

//    float s = 100;

//    float temp = 100;

//    for (int i=0; i<9; i++) {

//        s+=temp;

//        temp/=2;

//    }

//    printf("s = %.2f\n", s);

//    return 0;

//}



//14. 求最大公约数 (辗转相除法)

//a     b        a%b

//319 / 377 ---  319

//377 / 319 ---  58

//319 / 58  ---  29

//58  / 29  ---  0

//29  /  0



//int main(int argc,const char *argv[])

//{

//    int a, b;

//    scanf("%d %d", &a, &b);

//    while (b) {

//        int temp = a%b;

//        a = b;

//        b = temp;

//    }

//    printf("最大公约数 = %d\n",a);

//    return 0;

//}





//17. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

//sdfghjkl;\n

//int main(int argc,const char *argv[])

//{

//    int cnt1=0,cnt2=0,cnt3=0,cnt4=0;

//    char ch;

//    while (scanf("%c",&ch), ch!='\n') {

//        if ((ch>='a' && ch<='z') || (ch>='A'&&ch<='Z')) {

//            cnt1++;

//        }

//        else if(ch == ' ')

//        {

//            cnt2++;

//        }

//        else if(ch>='0' && ch<='9')

//        {

//            cnt3++;

//        }

//        else

//        {

//            cnt4++;

//        }

//    }

//    printf("英文字母:%d 空格:%d 数字:%d 其它字符:%d\n", cnt1, cnt2, cnt3, cnt4);

//    return 0;

//}

//19.    循环(输出图案)    打印以下图案, 该图案的行数由输入的数n来控制

//

//A

//AA

//AAA



//int main(int argc,const char *argv[])

//{

//    int n;

//    scanf("%d", &n);

//    for (int i=0; i<n; i++) {

//        for (int j=0; j<=i; j++) {

//            printf("A");

//        }

//        printf("\n");

//    }

//    return 0;

//}



//20.使用嵌套循环产生下列图案:

//   *   j=3             i=0

//  ***  j=2 j=3         i=1   j=4

// ***** j=1 j=2 j=3     i=2   j=4 j=5

//*******j=0 j=1 j=2 j=3 i=3   j=4 j=5 j=6



//int main(int argc,const char *argv[])

//{

//    int n;

//    scanf("%d", &n);

//    for (int i=0; i<n; i++) {

//        for (int j=0; j<(n-1)*2+1; j++) {

//            if (i+j>=n-1 && j-i<=n-1) {

//                printf("*");

//            }

//            else

//            {

//                printf(" ");

//            }

//        }

//        printf("\n");

//    }

//    return 0;

//}



//24. 将一个正整数分解质因数(用for 循环)。例如:输入90,打印出90=2*3*3*5。//%d*   %d

//n

//90

//90  / 2  --- 0

//45  / 2  ---

//45  / 3  --- 0

//15  / 3  --- 0

//5   / 3  ---

//5   / 4  ---

//5   / 5  --- 0

//1

//int main(int argc,const char *argv[])

//{

//    int n;

//    scanf("%d", &n);

//    printf("%d=",n);

//    for (int i=2; n!=1; i++) {

//        if(!(n%i))

//        {

//            n==i?printf("%d", i):printf("%d*",i);

//            n /= i;

//            i--;

//        }

//    }

//    return 0;

//}



//30. 输入一个自然数n, 统计 n! 末尾有多少个0?

//5!    1   5*4*3*2*1

//10!   2   2*5*9*8*7*6*5*4*3*2*1

//15!   3   3*5...2*5...5*...

//20!   4   4*5...3*5...2*5...5...

//25!   6   5*5...4*5...3*5...2*5...5...

//125!    5*5*5   25%5   5%5

//25%5 cnt++ 5%5 cnt++; 1%5

//int main(int argc,const char *argv[])

//{

//    int n;

//    int cnt=0;

//    scanf("%d", &n);

//    for (int i=1; i<=n; i++) {

//        int temp = i;

//        while (!(temp%5)) {

//            cnt++;

//            temp/=5;

//        }

//    }

//    printf("cnt = %d\n", cnt);

//    return 0;

//}



//31. 编写程序,找到1000以内的所有”完数”,所谓完数是指一个数是其所有因子之和 如: 6 = 1+2+3;  6 28 496

//int main(int argc, const char *argv[])

//{

//    for (int i=1; i<=1000; i++) {

//        int sum=0;

//        for (int j=1; j<i; j++) {

//            if (!(i%j)) {

//                sum+=j;

//            }

//        }

//        if (sum==i) {

//            printf("%d ", i);

//        }

//    }

//    return 0;

//}



//25.流程控制(for循环)    输入一个大写字母,如F

//\

//比如:

//\

//输入:F

//\

//输出:

//

//     A

//    AB A

//   ABC BA

//  ABCD CBA

// ABCDE DCBA

//ABCDEF EDCBA



//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("\n");

//        

//    }

//    return 0;

//}





//26.    流程控制(for循环)    输入一个大写字母,如 F,输出

//\

//比如:

//\

//输入:F

//\

//输出:

//     F

//    EFE

//   DEFED

//  CDEFEDC

// BCDEFEDCB

//ABCDEFEDCBA



//27.    流程控制(for循环)    输入一个大写字符,如F

//\

//比如:

//

//输入:F

//

//输出:

//

//FEDCBA

// EDCBA B

//  DCBA BC

//   CBA BCD

//    BA BCDE

//     A BCDEF



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<i; 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("\n");

    }

    return 0;

}

 

你可能感兴趣的:(循环)