zoukankan      html  css  js  c++  java
  • 实验6 数组1。

    1、输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标。

    #include<stdio.h>
    int main(void)
    {
        int i,index,n;
        int a[10];                                           //定义一个有10个整型元素的数组a//
        printf("Enter n:");                                  //提示输入n//
        scanf("%d",&n);
        printf("Enter %d integers:",n);                      //提示输入n个数//
        for(i=0;i<n;i++)                                     //有限循环,保证输入的数的个数不超过定义的n//
            scanf("%d",&a[i]);
        index=0;                                             //假设a[0]是最大值,即下标为0的元素最大//
        for(i=1;i<n;i++)
            if(a[i]>a[index])                                //如果a[i]比假设的最大值还大//
                index=i;                                     //再假设a[i]是新的最大值,即下标为i的元素最大//
            printf("max is %d	sub is %d
    ",a[index],index); //输出最大值和对应的下标//
            return 0;
    }

     

    2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数。

    #include<stdio.h>
    int main(void)
    {
        int i,n;
        int a[10];                                    //定义一个有10个整型元素的数组a//
        printf("输入 n:");                             //提示输入n//
        scanf("%d",&n);
        printf("输入 %d 个整数:",n);                   //提示输入n个整数//
        for(i=0;i<n;i++)                              //有限循环,数组排序//
            scanf("%d",&a[i]);
    
        printf("顺序输出一维数组a:
    ");                 //输出提示//
        for(i=0;i<n;i++)
            printf("数组元素a[%d],元素值%d
    ",i,a[i]);  //输出结果前缀//
        printf("
    ");
    
        printf("逆序输出一维数组a:
    ");                 //输出提示//
        for(i=n-1;i>=0;i--)                           //倒序//
            printf("数组元素a[%d],元素值%d
    ",i,a[i]);  //输出结果前缀//
        printf("
    ");
    
        return 0;
    }

     

    3、定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出。

    #include<stdio.h>
    void swap2(double*,double*);
    void bubble(double d[]);                        //定义冒泡排序法?//
    int main(void)
    {
        double d[5];
        int i;
    
        printf("请输入5个实数:
    ");
        for(i=0;i<5;i++)
            scanf("%lf",&d[i]);
        bubble(d);
        printf("从大到小排序后:
    ");
        for(i=0;i<5;i++)
            printf("%lf
    ",d[i]);
    
        return 0;
    }
    void bubble(double d[])                           //开始冒泡排序//
    {
        int i,j,t;
        for(i=0;i<5;i++)                              //外部循环//
            for(j=0;j<5-i;j++)                        //内部循环//
                if(d[j]<d[j+1]){                      //比较两个元素的大小//
                    t=d[j];d[j]=d[j+1];d[j+1]=t;      //如果前一个元素小,则交换//
                }
    }

    好不容易开始运行了,但是后面三个数小数点后的数字不知道怎么就被吞掉了!!!

    请告诉我这是为什么!!!

    呕心沥血半个小时啊!把所有的 int a[] 替换成 double d[] 不容易啊我 QAQ

    4、设计一个程序,利用二维数组输出3x2矩阵。

    #include<stdio.h>
    int main(void)
    {
        int i,j;
        int a[3][2];                         //定义一个3*2的二维数组//
    
        for(i=0;i<3;i++)
            for(j=0;j<2;j++)
                a[i][j]=i+j;
    
            for(i=0;i<3;i++){
                for(j=0;j<2;j++)
                    printf("%4d",a[i][j]);   //输出该数组//
                printf("
    ");                //美观的隔行~//
            }
    
            return 0;
    }

    5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵。

    #include<stdio.h>
    int main(void)
    {
        int i,j;
        int a[3][3];
    
        printf("输入数组arr各元素值:
    ");
        for(i=0;i<3;i++)
            for(j=0;j<3;j++)
                scanf("%d",&a[i][j]);
    
            printf("输入数组为:
    ");
    
    for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%4d",a[i][j]); printf(" "); } return 0; }
  • 相关阅读:
    【NOIP 2003】 加分二叉树
    【POJ 1655】 Balancing Act
    【HDU 3613】Best Reward
    【POJ 3461】 Oulipo
    【POJ 2752】 Seek the Name, Seek the Fame
    【POJ 1961】 Period
    【POJ 2406】 Power Strings
    BZOJ3028 食物(生成函数)
    BZOJ5372 PKUSC2018神仙的游戏(NTT)
    BZOJ4836 二元运算(分治FFT)
  • 原文地址:https://www.cnblogs.com/kiero3314/p/3391826.html
Copyright © 2011-2022 走看看