• ioS开发之c语言基础-循环结构


    //

    //  main.m

    //  C3-循环结构

    //

    //  Created by dllo on 15/10/7.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import <Foundation/Foundation.h>


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

        //while 循环

        

    //    while (循环条件) {

    //        循环体

    //        循环增量

    //    }

    //    int a = 0;

    //    //循环条件- a< 3

    //    while (a < 3 ) {

    //        //循环体-要循环做的事情

    //    printf("做俯卧撑 ");

    //        // 循环增量不要忘记!!!

    //    a++;

    //    }

        //从键盘输入一个数n,打印n"做俯卧撑"

    //    int n = 0 ;

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

    //    while ( n > 0) {

    //    printf("做俯卧撑 ");

    //    n--;

    //    }

    //

    //

        // while循环打印1-100

    //    int i = 1;

    //    while (i <= 100) {

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

    //    i++;

    //    }

        //找出1-100之间7的倍数,个数为7的数,十位为7的数,不是7的倍数并且不包含7的数

    //     int a = 1;

    //     while (a < 101) {

        

    //     if  ( 0 == a % 7 ) {

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

    //        

    //     }

    //     a++; //7的倍数

    //

    //     if  ( 7 == a % 10) {

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

    //             // 个位数为7

    //     }

    //     if  ( 7 == a / 10 ) {

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

    //             //十位数为7

    //             

           //  }

    //     if  ((7 != a / 10 ) && ( 7 != a % 10 ) &&  7 != a % 7 ) {

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

    //

    //     }

    //     a--;

    //    随机数

        //arc4random() % (b - a + 1 ) + a ;

        //功能;随机产生一个a b 范围内的整数

    //    int ret = arc4random() % (30 -10 + 1) + 10;

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


        //用户从控制台输入n,while打印n个随机数,范围是1030

    //    int n = 0;

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

    //    while (n >0) {

    //    int ret = arc4random() % (30 -10 + 1) + 10;

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

    //    n--;

    //

    //    }

    //    

    //    输出较大随机数

    //    int n = 0;

    //    

    //    int max = 0 ;

    //    //int min = 70;

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

    //    while(n > 0 ){

    //    int ret = arc4random() % (70 - 30 + 1) + 30 ;

    //        

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

    //        

    //        //判断大小 将较大的存入变量

    //     if(ret > max ){

    //     max = ret ;

    //     }

    //        

    //        

    //     n--;

    //     }

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

    //    

        // break

        

    //    while(1){

    //    // 终端,退出循环

    //        break;

    //        printf( "循环 ");

    //      

    //    }

    //    int  a =  0 ;

    //    while (a < 3){

    //        printf("循环 ");

    //        //continue;

    //        // 不会往下走,提前进入下一次循环

    //        a++;

    //        break;

    //    }

       

    //    for ( 循环条件的定义及初始化;循环条件;循环增量){

    //    循环体

    //    }

        //找出1-100之间7的倍数,个数为7的数,十位为7的数,不是7的倍数并且不包含7的数

       

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

           // printf("做俯卧撑 ");

    //        if ( 0 == i % 7) {

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

    //        }

    //        if ( 7 == i % 10) {

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

    //        }

    //        if ( 7 == i / 10) {

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

    //         }

            //if (( 7 != i / 10) && ( 7 != i % 10) && ( 0 != i % 7)){

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

           // }

     //   }

          // 1

          // 1 2

          // 1 2 3 图形的打印

        //第一步

          //1 2 3

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

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

        //第二步

        // 1 2 3

        // 1 2 3

        // 1 2 3

        //(1)=(2)

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

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

    //      }

    //      printf(" ");

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

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

    //      }

    //      printf(" ");

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

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

    //      }

    //      printf(" ");

    //    (2)=(1)

    //      里面的for循环就是i 的那个循环控制的的是每行输出多少个数字,外面的for循环控制的是输出多少行. 先看最后一行,上面的行有残缺,或者按照一定形式输出,将里面的for循环用第一个j表示就可以,就可已按照      一定图案输出

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

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

    //    printf("*" );

    //        

    //    }

    //    printf(" ");

    //    }

    //

    //

    //    }

        

        // 99 乘法表

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

    //       

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

    //         printf("%d*%d=%2d ",i,j,i * j); //2是用来对齐用的

    //    }

    //    printf(" ");

    //    }

       // 打印3个数字的组合可能

       

    //    for (int a = 1  ; a < 10; a++) {

    //        for (int b = 0; b < 10; b++) {

    //            for (int c = 0; c < 10; c++) {

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

    //           //     printf("%d ",a * 100 + b * 10 + c );

    //            }

    //        }

    //        printf(" ");

    //    }

        

        int i = 0;

        int j = 0;

        int m = 0;

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

        m = i > j ? j : i ;

        while (m ) {

            

        

         if ((i  % m  == 0)&&(j  % m   == 0)) {

             printf("最大公约数%d",m );

            break;

        }

            m--;

          

        }

        printf("最小公倍数:%d",i * j / m );

        // 7.(****)反复校验用户输入的生日,包括年、月、日。直到年、月、日都合法。

    //        int year = 0;

    //        int month = 0;

    //        int  day = 0;

    //        int i = 1;

    //        int j = 1;

    //        int  k = 1;

    //        printf(" 请输入出生年月日:格式:年份-月份-日期 ");

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

    //        while ( i ){

    //        

    //        

    //        if ((year > 2015) || (year < 1905) ) {

    //            printf("输入无效,请重新输入");

    //            year = 1;

    //            i = year;

    //        }        }

    //        while ( j  ){

    //        if ((month  > 12) || (month < 10) ) {

    //            printf("输入无效,请重新输入");

    //             month = 1;

    //            j = month;

    //    

    //                }

    //        while ( k  ){

    //        if ((day  > 30 ) || (day < 1) ) {

    //            printf("输入无效,请重新输入");

    //            day = 1;

    //            k  = month;

    //                    

    //                }

    //

    //            }

    //    }


    }


      /* 1. (**)随机产生20[10 , 100]的正整数,输出这些数以及他们中的最大数

        int n = 0 ;

        scanf("%d",&n );

        int max = 0 ;

        while (n > 0){

        int ret = arc4random() % (100 - 10 + 1) + 10;

        printf ("%d ",ret );

        if (ret > max )

        {

        max = ret ;

        }

        n--;

        }

        printf("max:%d ",max  );

        

        2. (**)编程将所有水仙花数打印出来,并打印其总个数。水仙花数是一个 各个位立方之和等于该整数的三位数。

             int a = 0;

             int b = 0;

             int c = 0;

             int count = 0;

             for(a = 0;a < 10;a++)

             for(b = 0;b < 10;b++)

             for(c = 1;c < 10;c++)

             if(a+b*10+c*100 == a * a * a + b * b * b + c * c * c){

             count++;

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

       

       

       }

             printf("%d ",count);

        

        

        3. (**)已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合

       int a = 0;

       int b = 0;

       int c = 0;

       for(a = 1;a < 10;a++)

       for(b = 0;b < 10;b++)

       for(c = 1;c < 10;c++)

       if(1333 == a + b * 10 * 2  + c * 100 + a * 100 + c  )

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

       

       

        4. (***)输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)

       // 辗转相除法

       int a = 0;

       int b = 0;

       int j = 0;

       int r = 0;

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

       if(a < b){

       j = a;

       a = b;

       b = j;

       }

       r = a % b;

       while (r) {

       a = b;

       b = r;

       r = a % b;

       

       }

       

       printf("最大公约数:%d ",b);

       j = (a > b ? a : b) ;

       while (!((j % a  == 0 )&& (j % a  == 0 )) ) {

       j++;

       }

       

       printf("最小公倍数:%d",j);

       

       printf("最小公倍数:%d",i * j / m );    上面的代码有一点麻烦,公约数和公倍数之间是有关系的

       //普通方法

       int i = 0;

       int j = 0;

       int m = 0;

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

       m = i > j ? j : i ;

       while (m ) {

       

       

       if ((i  % m  == 0)&&(j  % m   == 0)) {

       printf("最大公约数%d",m );

       break;

       }

       m--;

       

       }

       printf("最小公倍数:%d",i * j / m );

       

       

        • (***)一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高

       float i = 100;

       float sum = 0;

       int  n = 0;

       scanf("%d",&n );

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

       //  i = i / 2;

       sum +=   i;

       i = i / 2;

       }

       printf("共经过:%f%d次反弹高:%f ",sum,n,i );

       

       

       }


       

        6. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形。

        例如:n = 3时,输出:

       int n = 0;

        int i = 0;

       int j = 0;

       scanf("%d",&n);

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

       if (i <= n ) {

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

       printf(" ");

       }

       for (int j = 0; j < 2 * i  - 1 ; j ++) {`

       printf("*");

       

       }

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

       printf(" ");

       

       }

       

       }else {

       for (j=0; j < i % n; j++)printf(" ");

       for (j=0; j< 2 * n - 1 - 2 * (i % n); j++)printf("*");

       for (j=0; j< i % n; j++)printf(" ");

       

       }

       printf(" ");

       }

       

        7.(****)反复校验用户输入的生日,包括年、月、日。直到年、月、日都合法。

      */

    //    int a = 0;

    //    int b = 0;

    //    int c = 0;

    //    int n = 100;

    //    

    //    

    //    while (n < 1000) {

    //        a = n / 100;

    //        b = n /10 % 10 ;

    //        c = n % 100;

    //        if (n == a * a * a + b * b * b + c * c * c  ) {

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

    //            n ++;

    //        }

    //       

    //   }

        

    //#include<stdio.h>

    //    void fun(int m);

    //    main()

    //    {

    //        int m;

    //        printf("请输入一个三位数:"); //"水仙花数"是针对三位数的;

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

    //        fun(m);

    //        return 0;

    //    }

    //    

    //    void fun(int num)

    //    {

    //        int a,b,c,n;

    //        a=num/100;

    //        b=num/10-a*10;

    //        c=num-a*100-b*10;

    //        n=a*a*a+b*b*b+c*c*c;

    //        if(num==n)

    //            printf("%d是水仙花数! ",num);

    //        else 

    //            printf("%d不是水仙花数! ",num);

    //    }

    //#include "stdio.h"

    //    void main()

    //    {

    //        int n,a,b,c;

    //        n=100;

    //        while(n<1000)

    //        {

    //            a=n/100;

    //            b=n%100/10;

    //            c=n%10;

    //            if(n==a*a*a+b*b*b+c*c*c)

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

    //            n++;

    //        }

    //        printf(" ");

    //    }

    //    


    //

    //        int a,b,c;

    //        for(int a = 1;a <= 9;a++)

    //        {

    //            for(int b=0;b<=9;b++)

    //            {

    //                for(int c=0;c<=9;c++)

    //                {

    //                    if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)

    //                    {

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

    //                    }

    //                }

    //            }

    //        }

    //int main(void)

    //{

    //    int m,n,i,j;

    //    printf("请输入两个正整数");

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

    //    i=(m>n?n:m);

    //    while(!(m%i==0&&n%i==0))

    //    {

    //        i--;

    //    }

    //    printf("最大公约数:%d ",i);

    //    j=(m>n?m:n);

    //    while(!(j%m==0&&j%n==0))

    //    {

    //        j++;

    //    }

    //    printf("最小公倍数:%d ",j);

    //    return 0;

    //}

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

    //    int n,i,j;

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

    //    for (i=1; i<=2*n-1; i++) {

    //        if (i<=n) {//实心菱形上半部分

    //            //n-i空格

    //            for (j=0; j<n-i; j++)printf(" ");

    //            //2i-1 *

    //            for (j=0; j<2*i-1; j++)printf("*");

    //            

    //            //n-i kongge

    //            for (j=0; j<n-i; j++)printf(" ");

    //        }

    //        

    //        else {//实心下半部分

    //            //i%n kongge

    //            for (j=0; j<i%n; j++)printf(" ");

    //            //2*n-1-2(i%n)

    //            for (j=0; j<2*n-1-2*(i%n); j++)printf("*");

    //            //i%n kongge

    //            

    //            for (j=0; j<i%n; j++)printf(" ");

    //        }

    //        

    //        printf(" ");

    //    }

    //    for(i=1;i<=2*n-1;i++){//空心菱形上半部分

    //        if(i<=n){

    //            for(j=1;j<=n+i-2;j++)

    //            {

    //                if(j==n-i+1)printf("*");

    //                else printf(" ");

    //                

    //            }

    //            printf("* ");}

    //        else {//空心菱形下半部分

    //            for(j=1;j<=2*n-i%n-2;j++)

    //            {

    //                if(j==i%n+1)printf("*");

    //                else printf(" ");

    //                

    //            }

    //            printf("* ");}

    //        

    //        

    //    }

        //

        //

    //    return 0;

    //}


  • 相关阅读:
    动词的形态及变化(转)
    数论基础
    P1505 [国家集训队]旅游
    贪心常见题
    主席树
    卡常火车头
    AC自动机
    左偏树
    位运算
    Linux下Vim常用操作
  • 原文地址:https://www.cnblogs.com/yuhaojishuboke/p/5043140.html
Copyright © 2020-2023  润新知