实验6:数组1

 

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

/*找出数组中的最大值并输出它所对应的下标*/
#include<stdio.h>
int main(void)
{
    int i,max,n;
    int a[10];

    printf("输入 n:");
    scanf("%d",&n);
    printf("请输入5个整数:\n",n);    /*提示输入n个数*/
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    max=0;                          /*假设a[0]是最大值,及下标为0的元素最小*/
    for(i=1;i<n;i++)
        if(a[i]>a[max])            /*如果a[i]比假设的最大值还大*/
            max=i;                 /*再假设a[i]是新的最大值,及下标为i的元素最大*/
    /*输出最小值和对应的下标*/
    printf("最大值是:%d\n其数组下标是%d\n",a[max],max);

    return 0;
}

 

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

/*按正序、逆序输出数据*/
#include<stdio.h>
int main(void)
{
    int i,n;
    int a[5];
    printf("输入n:");   /*提示输入数的个数*/
    scanf("%d",&n);
    printf("输入5个整数:",n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);

    printf("正序输出一维数组a:");  /*提示输出数组*/
    for(i=n+1;i>=0;i++){
        printf("%d  ",a[i]);
    printf("\n");
    }

    printf("逆序输出一维数组a:");
    for(i=n-1;i>=0;i--){
        printf("%d",a[i]);
    printf("\n");
    }

    return 0;
}

 

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

/*用冒泡排序法由大到小排列输出数据*/
#include<stdio.h>
main()
{
    double arr[6];    /*定义arr[0]...arr[10]*/
    int i,j,t;
    printf("请输入5个实数:\n");
    for(i=1;i<6;i++)
    scanf("%0.2f",&arr[i]);    /*输入5个数分别赋给arr[1]...arr[10],arr[0]未用*/
    printf("\n");

    for(j=1;j<=4;j++)     /*外循环5-1=4次,用j做循环变量*/
    for(i=1;i<=5-j;i++)    /*内循环从1到5-j(分别为4...1)*/
    if(arr[i]<arr[i+1])    /*完成相邻元素比较,将小数放后,大数放前*/
    {
        t=arr[i];
        arr[i]=arr[i+1];
        arr[i+1]=t;
    }
    printf("有大到小的顺序是:\n");
    for(i=1;i<=5;i++)
        printf("%.6f",arr[i]);
}

 

问题:这是神马情况啊?????

 

4、设计一个程序,利用二维数组输出3x2矩阵,程序运行结果如下:

/*输出二维数组*/
#include<stdio.h>
int main(void)
{
    int i,j;
    int a[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("\n");
    }

    return 0;
}

 

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

/*找最小值,输出行列下标,输出矩阵*/
#include<stdio.h>
int main(void)
{
    int i,j,r=0,c=0,min;
    static int a[3][3]={{12,21,43},{34,10 ,56},{76,12,78}};/*定义一个数组变量,并赋值*/


    /*找出最小值*/
    min=a[0][0];
    for(i=0;i<=2;i++)        
        for(j=0;j<=2;j++)
    if(a[i][j]<min)
    {
        min=a[i][j];    /*输出最小值*/
        r=i;
        c=j;
    }
    printf("min=%d,r=%d,c=%d\n",min,r,c);

    return 0;
}
      

 

 

 

 

posted @ 2013-10-28 09:53  在人间·在天堂  阅读(299)  评论(0编辑  收藏  举报