【实验6】数组1

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

#include<stdio.h>
int main()
{
    int i,index,n;
    int 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]);
    index=0; /*假设下标为0的元素最小*/
    for(i=1;i<n;i++)
        if(a[i]<a[index])/*如果a[i]比假设的最小值还小*/
            index=i;/*再假设a[i]是新的最小值,即下标为i的元素最小*/
        /*输出最小值和下标*/
    printf("min is %d\tsub is %d\n",a[index],index);

    return 0;
}

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

 

#include<stdio.h>
int main(void)
{
    int i,index,k,n,temp;
    int a[10];/*定义1个数组啊,它有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[0],a[1]...a[9]*/
    /*对n个数排序*/
    for(k=0;k<n-1;k++){
        index=k;/*index存放最小的值*/
        for(i=k+1;i<n;i++)/*寻找最小值*/
            if(a[i]<a[index]) index=i;
            temp=a[index];
            a[index]=a[k];
            a[k]=temp;/*交换,将最小值与第一位数交换*/
    }
    printf("After sorted:");/*输出数组*/
    for(i=0;i<n;i++)
            printf("%d",a[i]);
    printf("\n");
    printf("After sorted");/*正排序*/
    for(i=n-1;i>=0;i=i-1)
        printf("%d",a[i]);/*逆排序*/
    printf("\n");

    return 0;
}

 

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

#include<stdio.h>
int main(void)
{
    int i,j;
    int a[3][2];
    /*将输入的数存入二维数组*/
    printf("Enter 6 integers:\n");/*提示输入6个数*/
    for(i=0;i<3;i++)
        for(j=0;j<2;j++)
            scanf("%d",&a[i][j]);
    /*按矩阵的形式输出二维数组*/
    for(i=0;i<3;i++){
        for(j=0;j<2;j++)
            printf("%4d",a[i][j]);
        printf("\n");
        }
        return 0;
}

    

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

 

#include<stdio.h>
int main(void)
{
    int col,row,i,j;
    int a[3][3];
    /*将输入的数存入二维数组*/
    printf("Enter 9 integers:\n");/*提示输入6个数*/
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    /*按矩阵的形式输出二维数组*/
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
            printf("%4d",a[i][j]);
        printf("\n");
        }
row=col=0;/*设定a[0][0]是最大值*/
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i][j]<a[row][col]){/*如果a[i][j]比假设的大*/
    row=i;
    col=j;/*在假设a[i][j]是新的最大值*/
}
printf("min=a[%d][%d]=%d\n",row,col,a[row][col]);

return 0;
}

 

 

 

posted @ 2013-10-28 09:19  罗一  阅读(148)  评论(0编辑  收藏  举报