实验 6 数组1 ok

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

#include<stdio.h>
int main(void)
{
    int i,index;
    int a[10];

    printf("请输入10个整数:
");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    /* 找最大值a[index] */
    index=0;
    /* 假设a[0]是最大值 */
    for(i=1;i<=10;i++)
        if(a[i]>a[index])   /*如果a[i]比假设的最大值还大*/
            index=i;     /*再假设a[i]是新的最大值,即下标为i的元素最大*/
        printf("最大值是%d	其数组下标是:%d
",a[index],index);

        return 0;
}

 

 --------------------------------题目分割线---------------------------------

2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数;
运行结果示例:

#include<stdio.h>
int main(void)
{
    int i,n,k;
    int a[10];    /*定义一个有10个整型元素的数组a*/

    printf("输入n(n<=10):");
    scanf("%d",&n);
    printf("输入%d个整数:
",n);
    for(i=0;i<n;i++){       /*将输入数依次赋给数组a的n个元素a[0]~a[n-1]*/
        scanf("%d",&a[i]);    /*对n个数排序*/
    }

    printf("正序输出一堆数组a:
");
    for(i=0;i<=n-1;i++){        /*循环实现顺序输出*/
    printf("数组元素a[%d],元素值%d
",i,a[i]);
    }

    printf("逆序输出一堆数组a:
");
    for(i=0;i<2;i++){       
        k=a[i];
        a[i]=a[n-1-i];
        a[n-1-i]=k;         /*交换a[i]和a[n-1-i]的数值*/
    }
    for(i=0;i<=n-1;i++){    /*循环实现顺序输出*/
    printf("数组元素a[%d],元素值%d
",i,a[i]);
    }

    return 0;
}

 

     for(i=0;i<2;i++){       i<2这是为什么- -。 

 --------------------------------题目分割线---------------------------------

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

#include<stdio.h>
int main(void)
{
    double arr[5];        /*定义一个有5个元素的数组*/
    int i,j;
    double n;

    printf("请输入5个实数:
");
    for(i=0;i<5;i++){
        scanf("%lf",&arr[i]);     /*输入5个数*/
    }
    for(i=0;i<5;i++){
        for(j=0;j<5-i;j++){
            if(arr[j]<arr[j+1]){
                n=arr[j+1];
                arr[j+1]=arr[j];
                arr[j]=n;
            }
        }
    }
    printf("由大到小排序后:
");
    for(i=0;i<5;i++){
        printf("%lf
",arr[i]);
    }
    return 0;
}

--------------------------------题目分割线---------------------------------
△4、设计一个程序,利用二维数组输出3x2矩阵,程序运行结果如下:
运行结果示例:

#include<stdio.h>
int main(void)
{
    int i,j;
    int a[3][2];    //定义一个二维数组a

    for(i=0;i<3;i++)         //行下标是外循环的循环变量
        for(j=0;j<2;j++)     //列下标是内循环的循环变量
            a[i][j]=i+j;     //给数组元素赋值

        //按矩阵的形式输出a
        for(i=0;i<3;i++){    //针对所有行的循环
            for(j=0;j<2;j++) //输出第i行的所有元素
                printf("%4d",a[i][j]);
            printf("
");    //换行
        }
        return 0;
}

--------------------------------题目分割线---------------------------------
△5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵
运行结果示例:

#include<stdio.h>
int main(void)
{
    int arr[3][3];
    int i,j,x,y;
    //输入矩阵;
    printf("输入数组arr各元素值:
");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            scanf("%d",&arr[i][j]);
        }
    }
    x=y=0;
    //求出最小值;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            if(arr[i][j]<arr
                [x][y]){
                x=i;
                y=j;
            }
        }
    }
    //输出矩阵
    printf("输入数组为:
");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            printf("%4d",arr[i][j]);
        }
        printf("
");
    }
    printf("第%d行%d列最小值是%d
",x+1,y+1,arr[x][y]);
    return 0;
}

原文地址:https://www.cnblogs.com/danson-daisy/p/3391829.html