zoukankan      html  css  js  c++  java
  • ios7-21数组

    //模拟n个人参加选举的过程,并输出选举结果:假设候选人有四个,分别用A,B,C,D表示,当选某人时,直接输入其编号(由计算机随机产生),选举结束后按得票率从高到低输出候选人编号和所得票数
        int number = 0;
        int rand = 0;
        int temp = 0;
        char tt = 'a';
        char pp[4] = {'A', 'B', 'C', 'D'};
        int votes[4] = {0};
        printf("请输入选举人数:");
        scanf("%d",&number);
        
        for (int i = 0; i < number; i++) {
            rand = arc4random() % ( 68 - 65 +1) + 65;
            votes[rand - 65]++;
        }
        for (int i = 0; i < 4 - 1; i++) {
            for (int j = 0; j < 4 - 1 - i; j++) {
                if (votes[j] < votes[j + 1]) {
                    //对应数组联动
                    temp = votes[j];
                    tt = pp[j ];
                    votes[j] = votes[j + 1];
                    pp[j] = pp[j +1];
                    votes[j + 1] = temp;
                    pp[j +1] = tt;
                }
            }
        }
        for (int i = 0; i < 4; i++) {
            printf("获选人%c得票%d  
    ",pp[i],votes[i]);
        }

    //遇3死

    int k = 13;//活这得人数
        int i = 0; //下标数
        int count = 0; //报的数
        //int m = 0;//记住当前出局的下标
        int a[13] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13 };
        
        while (k > 1) {
            if (i >12) {
                i = 0;
            }
        
            //判断是否被标记为0
            if (a[i] != 0) {
                count++;
            }
            if (count == 3 ) {
                a[i] = 0;
                k--;
                count = 0;
            }
            //当报数为3的时候
            i++;
        }
        for (int j = 0; j < 13; j++) {
            if (a[j] != 0) {
                printf("%d------%d 
    ",j+1,a[j]);
            }
        }
        return 0;
    }

    //求鞍点

      int flog = 1;
        int z = 0;
      
        int a[4][3] = {
            {21,29,29},
            {35,35,38},
            {31,30,38},
            {27,33,36}
        };
        int maxhang = 0;
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 3; j++) {
                a[i][j]=arc4random() % (40 - 20 + 1) + 20;
                 printf("%d   ",a[i][j]);
            }
            printf("
    ");
        }
        
        for (int i = 0; i < 4; i++) {
            //找到行最大值
            for (int j = 0; j < 3; j++) {
                maxhang = a[i][j];
                  BOOL isMax = YES;
                for (int column = 0; column < 3; column++) {
                    if (maxhang < a[i][column]) {//说明不是最大行
                        isMax = NO;
                        break;
                    }
                }
                z = j;
                if (isMax ==NO) {
                    continue;
                }
                //判断是不是该列的最小值
                //假设是最小值
                //int min = array[i][j];
                for ( int k = 0;  k < 4;  k++) {
                    if(a[k][z] < maxhang)
                    {
                        flog = 0;
                        break;
                    }
                }
                
                if (flog == 1) {
                    printf("鞍点是%d,行是%d,列是%d",maxhang,i,z);
                }
                flog = 1;
            }
            }
          
    //在求每一列的和的时候,行变换的比较快,因此,外城循环处理列数,内层循环处理行数
    //    for (int i = 0; i < 3; i++) {
    //        for (int j = 0; j < 4; j++) {
    //            sum = sum + a[j][i];
    //        }
    //        printf("%d ",sum);
    //        sum = 0;
    //    }
    //
    //字符串数组
       // char array[4][20] = {"iOS","Windows","Android", "Symbian"};
        //注意:字符串数组,第二个维度,一定要比最长字符串的长度,大1
        //访问单个字符
    //    printf("%c
    ",array[i][5]);
    //    //输出字符串
    //    printf("%s是
    ",array[3]);//只访问到行索引即可.
    //    //输入所有字符串(遍历)
    //    for (int i = 0; i < 4; i++) {
    //        printf("%s",array[i]);
    //    }
        //练习:将上述字符串升序排列
    //    for (int j = 0; j < 4 -1; j++) {
    //        for (int i = 0; i < 4 - 1 -j; i++) {
    //            if ((strcmp(array[i],array[i+1]) > 0)) {
    //                char temp[20] = {'0'};
    //                //注意,字符串交换式,要使用字符串操作函数
    //                strcpy(temp, array[i]);
    //                strcpy(array[i], array[i+1]);
    //                strcpy(array[i + 1], temp);
    //                
    //            }
    //        }
    //
    //    }
    //    for (int i = 0;i < 4 ; i++) {
    //        printf("%s  ",array[i]);
    //    }
       /*
        int  array[4][3] = {0};
        for (int i = 0; i < 4; i++) {
            for (int k = 0; k < 3; k++) {
                array[i][k] = arc4random() %(40 - 20 + 1) + 20;
                printf("%d ",array[i][k]);
            }
            printf("
    ");
        }
        int  count = 0;//记录鞍点个数
        //假设是鞍点
        //假设改行最大值
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 3; j++) {
                int max = array[i][j];//假设最大值
                BOOL isMax = YES;
                for(int column = 0;column < 3;column++)
                {
                //判断是不是改行最大值
                    if (max < array[i][column]) {
                        //当前行不是改行最大的值,结束循环
                        isMax = NO;
                        break;
                    }
                }
                if (isMax == NO) {
                    //如果为NO,说明不是改行的最大值,已经不是满足鞍点的条件
                    continue;//直接进入下一个循环
                }
                int min = array[i][j];
                BOOL isMin = YES;//假设是该列中最小的
                //验证是不是该列最小的
                for (int  row = 0; row < 4; row++) {
                    if (min > array[row][j]) {
                        isMin = NO;
                        break;
                    }
                }
                if (isMin==NO) {
                    //如果为NO,说明不是该行的最小值,已经不是满足鞍点的条件
                    continue;//直接进入下一个验证
                }
                //当执行到该代码的时候说明什么问题
                count++;
                //鞍点个数  +1
                printf("鞍点数是:%d,所在行:%d,所在列:%d",array[i][j],i,j);
            }
        }
        //没有鞍点
        if(count == 0)
            printf("没有鞍点");
        */
        //三维数组:数组名[常量表达式1][常量表达式2][常量表达式3] = {值1,值2,值3...值n}
        //定义整数组
    //    int  array[3][4][3] = {0};
    //    //赋值
    //    for (int i = 0; i<3; i++) {//一本书
    //        for (int j = 0; j < 4; j++) {//一页字
    //            for (int k = 0; k<3; k++) {//一行字
    //                array[i][j][k] =arc4random() %(40 - 20 + 1) + 20;
    //                printf("array[%d][%d][%d] = %-3d", i, j,k, array[i][j][k]);
    //            }
    //            printf("
    ");
    //        }
    //        printf("
    ");
    //    }
    //    //求多维数组的纵深和
    //    //层变换
    //    int sum[4][3] = {0};
    //    for (int k = 0; k < 4; k++) {
    //        for (int j =0 ; j < 3; j++) {
    //            for (int i = 0; i < 3; i++) {
    //                sum[j][k] +=array[i][j][k];
    //            }
    //            printf("%-7d  ",sum[j][k]);
    //        }
    //        printf("
    ");
    //    }
        char map[10][10] =
        {
            //10行10列的数组地图
            {'#','#','#','#','#','#','#','#','#','#'},//0
            {'#',' ',' ',' ',' ','#',' ','#',' ',' '},//1
            {'#','#',' ','#','#','#',' ','#',' ','#'},//2
            {'#','#',' ',' ',' ',' ',' ','#',' ','#'},//3
            {'#','#','#',' ','#','#',' ','#',' ','#'},//4
            {'#',' ','#',' ',' ','#',' ','#',' ','#'},//5
            {'#',' ','#',' ',' ','#',' ','#',' ','#'},//6
            {'#',' ','#',' ',' ','#',' ','#',' ','#'},//7
            {'#',' ',' ',' ',' ','#',' ',' ',' ','#'},//8
            {'#','#','#','#','#','#','#','#','#','#'},//9
            //0   1   2   3   4   5   6   7   8   9
        };
    //    以上是地图, A 左移, S下移, D右移, W上移, 0 代表走迷宫的人, 编写程序, 走迷宫
    //    注: 空格是迷宫道路, #号是迷宫的墙
       // char people[10][10] ={'0'};
       // people[1][1] =map[1][1];
        int i =1;
        int j = 1;
        map[i][j] ='0';
        for (int k = 0; k < 10; k++) {
            for (int m = 0; m < 10; m++) {
                printf("%c ",map[k][m]);
            }
            printf("
    ");
        }
        char zoubu = 'a';
        //scanf("%c",&zoubu);
        while(zoubu != 'P')
        {
        printf("走步:
    ");
        scanf("%c",&zoubu);
        switch (zoubu) {
            case 'A'://左,[不变][减一]
    
                 if (map[i][j-1] =='#')
                     map[i][j] ='0';
                 else{
                    map[i][j-1] ='0';
                     map[i][j] =' ';}
                j = j - 1;
                               break;
            case 'S'://下[加一][不变]
                if (map[i + 1][j] =='#')
                    map[i][j] ='0';
                else{
                    map[i +1][j] ='0';
                    map[i][j] =' ';}
                i=i+1;
                break;
            case 'D'://右[不变][加一]
                if (map[i][j+1] =='#')
                    map[i][j] ='0';
                else{
                    map[i][j+1] ='0';
                    map[i][j] =' ';}
                j= j+ 1;
                break;
            case 'W'://上[减一][不变]
                if (map[i-1][j] =='#')
                    map[i][j] ='0';
                else
                {
                    map[i-1][j] ='0';
                    map[i][j] =' ';
                }
                i = i -1;
                break;
            default:
                for (int k = 0; k < 10; k++) {
                    for (int m = 0; m < 10; m++) {
                        printf("%c ",map[k][m]);
                    }
                    printf("
    ");
                }
                break;
        }
        }
        return 0;
    }
  • 相关阅读:
    Saltstack module apache 详解
    Saltstack module ip 详解
    Saltstack module iosconfig 详解
    Saltstack module introspect 详解
    Saltstack module inspector 详解
    Saltstack module ini 详解
    Saltstack module incron 详解
    Modbus 指令 RS485指令规则
    停车系统对接第三方在线支付平台(二)
    停车系统对接第三方在线支付平台
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4663519.html
Copyright © 2011-2022 走看看