实验6 数组1

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

 

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

#include<stdio.h>
int main(void)
{
    int i,index,n;                   
    int a[10];                           /*定义1个数组a,它有10个整型元素*/
    printf("Enter n:");                  /*提示输入n*/
    scanf("%d",&n);
    printf("Enter %d integers:",n);      /*提示输入n个数*/
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);                /*将输入的数依次赋给数组a的n个元素a[0]~a[n-1]*/
    
    /*找最小值a[index]*/
    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\tsub is %d\n",a[index],index);         /*输出最大值和对应的下标*/
        return 0;
}

 

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

 

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

#include<stdio.h>
int main(void)
{
    int i,n;                   
    int a[10];                           /*定义1个数组a,它有10个整型元素*/
    printf("Enter n:");                  /*提示输入n*/
    scanf("%d",&n);
    printf("Enter %d integers:",n);      /*提示输入n个数*/
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);               /*将输入的数依次赋给数组a的n个元素a[0]~a[n-1]*/
    
    printf("正序输出一维数组a\n");                   /*正序输出结果*/
    for(i=0;i<n;i++){
        printf("数组元素a[%d],元素值%d\n",i,a[i]);
    }
     printf("\n");
     printf("逆序输出一维数组a\n");                     /*逆序输出结果*/
        for(i=n-1;i>=0;i--){
        printf("数组元素a[%d],元素值%d\n",i,a[i]);
        }
        
    return 0;
}

 

 

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

 

#include<stdio.h>
int main(void)
{
    int i,j;                       /*定义行和列*/        
    int a[3][2];                    /*定义1个二维数组a*/
    
                                    /*给二维数组赋值*/
    for(i=0;i<3;i++)
        for(j=0;j<2;j++)
            a[i][j]=i+j;               /*给数组元素赋值*/

        for(i=0;i<3;i++){                 /*按矩阵的形式输出a*/
            for(j=0;j<2;j++)
                printf("%4d",a[i][j]);
            printf("\n");                      /*换行*/
        } 
        return 0;
}

 

 

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

 

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

#include<stdio.h>
int main(void)
{
    int i,j,col,row;                   /*用变量row和col分别记录最小值得行下标和列下标*/           
    int a[3][3];                        /*定义一个二维数组a*/
    
    /*将输入的数存入二维数组*/
      printf("Enter 9 integers:\n");         /*提示输入9个数*/                       
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);  
        
     /*按矩阵的形式输出二维数组a*/
        for(i=0;i<3;i++){                
            for(j=0;j<3;j++)
                printf("%4d",a[i][j]);
            printf("\n");                     
        } 

     /*遍历二维数组,找出最小值a[row][col]*/
        row=col=0;                           /*先假设a[0][0]是最小值*/
        for(i=0;i<3;i++)                           /*如果a[i][j]比假设值小*/
            for(j=0;j<3;j++)                       /*再假设a[i][j]是新的最小值*/
                if(a[i][j]<a[row][col]){
                    row=i;
                    col=j;
                }
                printf("min=a[%d][%d]=%d\n",row,col,a[row][col]);

                return 0;
}

        

 

 

 

 

 

 

posted @ 2013-11-03 22:14  simple9495  阅读(228)  评论(0编辑  收藏  举报