A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laotang013 中级黑马   /  2015-10-19 21:41  /  527 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*数组思考练习*/
#include <stdio.h>

int main(){

    /*

    int arr[]={1,2};//==int arr[2]={1,2};
    int arr2[3]={1,2,2};

    for (int i=0; i<3; i++) {
        printf("%d\n",arr2);
    }

    */


    /*

     已知有一个int数组:int arr[6]={1,2,4,3,8,5};

     1.编写一个函数求这个数组的最大值:


    int arr[6]={1,2,4,3,8,5};
    int tempMax=arr[0];

    for (int i=1; i<6; i++) {
        if(arr>tempMax){
            tempMax=arr;
        }
    }

    //printf("arr数组的最大值是:%d\n",tempMax);

   */



    /*
     2.给这个数组从大到小排序.(两种方式)--选择排序.冒泡排序(自已实现)

    int arr[6]={1,2,4,3,8,5};
    int tempIndexMax=0;//定义一个变量保存角标

    for (int i=0; i<6-1; i++) {
        tempIndexMax=i;//每一次把要操作的角标先设置为第一个值的.
        for (int j=i+1; j<6; j++) {
            if(arr[tempIndexMax]<arr[j]){//然后开始与剩余的数据挨个比较
                tempIndexMax=j;//把值较大的角标先存着
            }
        }

    printf("%d\n",tempIndexMax) ;//循环一次,当前存的角标为当前最大值的角标.

     //让其与当前比较范围的第一个数作交换.
        int temp=arr;
        arr=arr[tempIndexMax];
        arr[tempIndexMax]=temp;

     //交换成功.打印当前这数组.当整个外循环执行完后的最后一次打印的为排序后的数组.
        for (int i=0; i<6; i++) {
            printf("%d\t",arr) ;
        }
        printf("\n");

    }

*/

/*
     3.用一个二维数组实现打印右边的星形.

     思路:
     1.定义一个二维数组.
     2.发现只有两种态对于每个元素.要么星星,要么空格.
     3.所以用0表示空格.用1表示星星.

*/

    int arr[4][7]={{0,0,0,1,0,0,0},{0,0,1,1,1,0,0},{0,1,1,1,1,1,0},{1,1,1,1,1,1,1}};

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

        for (int j=0; j<7; j++) {
            if (0==arr[j]) {
                printf(" ");//如果元素是0,则打印空格,否则打印星星.
            }else{
                 printf("*");
            }
        }

        printf("\n");
    }

    return 0;

}






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马