zoukankan      html  css  js  c++  java
  • 代码练习

    #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左右 剩下的不明白也没关系 常练就好


  • 相关阅读:
    MySql性能调优三(explain/desc执行计划)
    MySql性能调优二(BTree、B+Tree与索引数据结构)
    MySql性能调优一(存储引擎InnoDB,MyISAM)
    PHP 数组底层实现原理
    哈希算法及其应用场景
    散列表、散列函数和散列冲突
    PHP中的XML解析的5种方法
    特殊的线性表:递归
    Navicat12破解教程(Navicat_Keygen_Patch_By_DFoX V5.6)
    svn服务端安装、迁移教程、Eclipse切换svn连接库
  • 原文地址:https://www.cnblogs.com/dire/p/4988758.html
Copyright © 2011-2022 走看看