• 代码练习


    #include<stdio.h>
    
    /*
     本程序功能:
     1.通过键盘为二位数组元素赋值,显示二维数组
     2.求出二维数组中最大元素和最小元素的值和对应的数组下标
     3.把二位数组转换为另一个二位数组并显示
     
     
     */
    
    int main ()
    
    {
        int a[2][3],b[3][2]; //定义两个数组
        int max,min;//最大值==最小值
        int h,l,i,j;//控制循环的变量
        int m,z;    
        //通过键盘为数组元素赋值
        for(i=0;i<2;i++)// 0 1 两次循环
        {
            for(j=0;j<3;j++) //0 1 2 三次循环
            {
                printf("a[%d][%d]=",i,j); //
                scanf("%d",&a[i][j]);
            }
        }
        printf("输出二维数组:\n");
        
        //显示刚才用键盘给二位数组的赋的值
        for(i=0;i<2;i++)//外层循环 0 1 控制行
        {
            for(j=0;j<3;j++)//内层循环  0 1 2  控制列
            {
                printf("%d \t",a[i][j]);
            }
            printf("\n");
        }
        //求出数组中最大元素和最小元素的下标
        max=a[0][0];
        min=a[0][0];
        m=0;
        z=0;
        h=0;
        l=0;//如果当前max为最大值就不会进入到if语句中 需要事先记录好它的下标
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                if(max<a[i][j]) //将a[0][0]依次和a数组中元素进行比较 最大值放在max中
                {
                    max=a[i][j];
                    h=i;
                    l=j;
                }
                 if (min>a[i][j]) //这里的if 不能和前面的if组成else if 因为那样判断了max就会漏掉min 组成了级联的if else语句 就只能执行其中一条if中的语句 
                 {
                    min=a[i][j];
                    m=i;
                    z=j;
                 }
            }
        }
        printf("数组中a[%d][%d]最大:%d\n数组中a[%d][%d]最小:%d\n",h,l,max,m,z,min);
    
        //对数组a进行转换 结果存放在数组b中
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                b[j][i]=a[i][j];
            }
        }
    
        for(i=0;i<3;i++)
        {
            for(j=0;j<2;j++)
            {
                printf("%d\t",b[i][j]);
            }
            printf("\n");
                
        }
    
        return 0;
    }

     总结:程序中牵扯到数组的程序一般都跟循环有很大的关系 因为要对数组进行操作的话 一般是用循环的方式访问每个数组的元素 练的多了 就习惯了 就感觉不复杂了 这道题目的难点在于 数组之间的倒置 我明白了%60左右 剩下的不明白也没关系 常练就好


  • 相关阅读:
    Linux内存、Swap、Cache、Buffer详细解析
    深入浅出前端本地储存
    Javscript字符串常用方法总结
    Python优雅日志记录器-Loguru
    Flume推送数据到SparkStreaming案例实战和内幕源码解密
    SparkStreaming数据源Flume实际案例分享
    基于HDFS的SparkStreaming案例实战和内幕源码解密
    Scala和Java二种方式实战Spark Streaming开发
    StreamingContext、DStream、Receiver深度剖析
    案例动手实战并在电光石火间理解其工作原理
  • 原文地址:https://www.cnblogs.com/dire/p/4988758.html
Copyright © 2020-2023  润新知