zoukankan      html  css  js  c++  java
  • 函数、数组练习

    #import <Foundation/Foundation.h>
    #include <stdio.h>
    #include <stdbool.h> //< 系统定义的>      “自定义的”
    bool leapYear(int year);
    bool leapYear(int year)
    {
        bool leap = false;      //方便以后修改
        if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
        {
            leap = true;
        }
        return leap;
    }
    
    int maxCommonDiv(int num1,int num2);
    int maxCommonDiv(int num1,int num2)
    {
        if(num1 == num2)
        {
            return num2;
        }
        
        int min = 0;
        int commonDIC = 0;
        min=(num1 < num2)?num1:num2;  //求出2个数中那个数最小
        for (int i = 1; i <= min; i++) {    //循环最小数次求模
            if (num1 % i == 0 && num2 % i ==0) {
                commonDIC = i;    //得到最大公约数
            }
        }
        return commonDIC;
    }
    
    
    void revert(int arr[],int len);
    void revert(int arr[],int len)
    {
        if(len <= 0){
            return;         // 跳出函数
        }
        
        int temp = 0;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len-1-i];
            arr[len-1-i] = temp;
        }
        
    }
    
    struct date
    {
        int year;
        int month;
        int day;
    };
    
    int getdayInMonth(int month,int year);
    int getdayInMonth(int month,int year)
    {
        int day = 0;
        switch (month) {
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:
            {
                day = 31;
                break;
            }
            case 4:case 6:case 9:case 11:
            {
                day = 30;
                break;
            }
                
            case 2:
            {
                if(leapYear(year))
                {
                    day = 29;
                }
                else
                {
                    day = 28;
                }
                
                break;
            }
                
                
            default:
                break;
        }
        return day;
    }
    
    void bullue(int arr[],int len);
    void bullue(int arr[],int len)
    {
        int tmp = 0;
        for (int i = 0; i < len - 1 ;i++ ) {
            for (int j = 0; j <len - 1 -i; j++) {
                if(arr[j] > arr[j+1])
                {
                    tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }}
    
    void insert(int arr[],int len,int num);
    void insert(int arr[],int len,int num)
    {
        //寻找位置
        int loc = 0;     //定位置
        for (int i = 0; i < len; i++)
        {
            if (arr[i] < num)    // 先跳出小于它的数
            {
                continue;
            }
            loc = i;         //定位置
            break;    
        }
        //移位
        for (int j = len; j > loc; j--) {    //从后到当前位置
            arr[j] = arr[j -1];    //把前一个值赋到最后的值中
        }     
        arr[loc] = num; //将当前位的num置赋
        //输出
        for (int k = 0; k < len; k++) {
            printf("%d	",arr[k]);
        }
        printf("
    ");
    }
    
    
    int main(int argc, const char * argv[])
    {
        //定义一个函数。功能:传入一个年份,求该年是不是闰年。函数名字 bool leapYear(int year);
        int y = 2012;
        printf("%d is or not leap year:%d
    ",y,leapYear(y));
     
        
        //定义一个函数。作用是求整数num1和num2的最大公约数,并返回该值。函数名字int maxCommonDivisor(int num1,int num2);
        printf("最大公约数为:%d
    ",maxCommonDiv(2,4));
        
        
        //将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6, 5, 4,1.要求改为:1,4,5,6,8;并将数组中的值输出。
        int arr[] = {1,3,5,7,9};
        revert(arr, 5);
        for (int i = 0; i < 5; i++) {
            printf("%d	",arr[i]);
        }
        
        
        //定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。
        struct date d = {2014,2,1};
        int day = 0;
        for (int i = 1;i < d.month; i++) {
            day += getdayInMonth(i,d.year); 
        }
        day += d.day;
        printf("%d-%d-%d是一年中的第%d天
    ",d.year,d.month,d.day,day);
        
        
        //编写一个函数用“冒泡法”对10个字符 reputation 按由小到大顺序排序。
        //char a[11] = {'r','e','p','u','t','a','t','i','o','n',''};
        char a[] = "reputation";
        int temp = 0;
        for (int i = 0; i < 9; i++) {                  //控制趟和下标
            for (int j = 0; j < 10 - i -1; j++) {       //控制次数和下标
                if(a[j] > a[j+1])
                {
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        printf("a = %s
    ",a);
        
        
        //编写子函数:(1)用”冒泡法”将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。 主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。
        int k[6] = {1,56,7,10,12};
        insert(k,6,8);
        
        
        //随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
        //产生一个10到50间的随机数
        int r = 0;
        int x = 10,y1 =50;
        r = arc4random() % (y1- x + 1)+x;
        printf("%d
    ",arc4random());
        printf("%d
    ",r);
    
    //    srand((unsigned int)time(NULL));
    //    int r = rand()%41+10;       //[10,50]
    //    printf("r = %d
    ",r);
               return 0;
    }
  • 相关阅读:
    mitmproxy抓包工具
    java基础|int和Integer的区别
    Vue|退出功能
    Vue|分页处理
    apt-get本地软件源搭建
    rqt_plot报错
    创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。
    ubuntu16.04安装ROS
    debian及Ubuntu各版本下载地址获取
    解决sudo rosdep init和rosdep update的错误
  • 原文地址:https://www.cnblogs.com/huen/p/3485932.html
Copyright © 2011-2022 走看看