首页 > 代码库 > iOS-C_Day5___循环练习

iOS-C_Day5___循环练习

2015.1.23

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

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

//    int n;

//    int cnt=0;

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

//    while (n) {

//        cnt++;

//        n/=10;

//    }

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

//    

//    return 0;

//}

 

//a=1 b=1

//a+b/a   2/1  a = 2 b = 1

//a+b/a   3/2  a = 3 b = 2

//a+b/a   5/3  a = 5 b = 3

//...

 

//9 流程控制(数值序列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;

//    int a=1,b=1;

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

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

//        int temp;

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

//        temp = a+b;

//        b = a;

//        a = temp;

//    }

//    printf("\n");

//    return 0;

//}

 

//交换两个两个变量的值

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

//{

//    int a=3, b=5;

//    /*

//    int tmp = a;

//    a = b;//a = 5;

//    b = tmp;// b=3;

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

//     */

//    //不借助中间变量交换a , b 的值

//    a=a+b;

//    b=a-b;

//    a=a-b;

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

//    return 0;

//}

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

//\

//比如:

//\

//输入 3输出为

//

//1

//2

//3

//

//输入 4 输出为

//1

//2

//3

//5

 

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

{

    int n, a=0,b=1;

    scanf("%d", &n);

    

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

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

        int tmp = a+b;

        a = b;

        b = tmp;

    }

 

    return 0;

}*/

 

//求最大公约数

//辗转相除法

//a    b        a%b

//319 377 --->  319

//377 319 --->   58

//319 58  --->   29

//58  29  --->   0

//29  0

 

//control + i

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

//{

//    int a, b;

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

//    while (b) {

//        int tmp = a%b;

//        a = b;

//        b = tmp;

//    }

//    printf("%d\n", a);

//    return 0;

//}

 

//流程控制(for求阶乘的和 ) 输入n(int类型),打印1!+2!+3!+4!+5!+。。。+n!的值

//比如:

//

//输入:2

//输出:

//3

//

//输入:3

//

//输出:

//9

 

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

//{

//    int Sn = 0;

//    int n;

//    int temp=1;

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

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

//        temp = i*temp;// n!

//        Sn += temp;

//    }

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

//    

//    return 0;

//}

 

//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

//n    i     n%i

//90 / 2 ---> 0

//45 / 2 ---> 1

//45 / 3 ---> 0

//15 / 3 ---> 0

//5  / 3 ---> 2

//5  / 4 ---> 1

//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--;

//        }

//    }

//    printf("\n");

//    return 0;

//}

 

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

//\

//比如:

//\

//输入: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-i-‘A‘; 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;

}

*/

 

 

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

//\

//比如:

//

//输入: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=0; j<i; j++) {

            printf(" ");

        }

        for (int j=i; j<ch-‘A‘+1; j++) {

            printf("%c", ch-j);

        }

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

            printf("%c", ‘A‘+j+1);

        }

        printf("\n");

    }

    return 0;

}*/

 

//输入一个大写字符,如F

//比如:

//输入:F

//输出:

//FEDCBA

//EDCBAB

//DCBABC

//CBABCD

//BABCDE

//ABCDEF

//

//输入 B

//输出:

//BA

//AB

 

//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<ch-‘A‘+1; j++) {

//            printf("%c", ch-j);

//        }

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

//            printf("%c", ‘A‘+1+j);

//        }

//        

//        printf("\n");

//    }

//    return 0;

//}

 

//输入一个大写字母,如F

//比如:

//输入:F

//输出:

//A

//ABA

//ABCBA

//ABCDCBA

//ABCDEDCBA

//ABCDEFEDCBA

//

//输入:C

//输出:

//A

//ABA

//ABCBA

 

/*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("%c", ‘A‘+j);

        }

        for (int j=i; j>0; j--) {

            printf("%c",‘A‘+j-1);

        }

        printf("\n");

    }

    return 0;

}*/

 

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

//2015 1 31 //31

//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 total=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:

                total+=31;

                break;

            case 2:

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

                    total+=29;

                }

                else

                {

                    total+=28;

                }

                break;

            case 4:

            case 6:

            case 9:

            case 11:

                total+=30;

                break;

            default:

                break;

        }

    }

    total+=day;

    

    printf("总天数%d\n", total);

 

    return 0;

}

 

iOS-C_Day5___循环练习