7

/* 按矩阵的形式输出二维数组 */
#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;
}

/* 方阵转置 */
#include<stdio.h>
int main(void)
{
    int i,j,n,temp;
    int a[6][6];



    printf("Enter n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=i*n+j+1;



    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            if(i<=j){
                temp=a[i][j];
                a[i][j]=a[j][i];
                a[j][i]=temp;
            }



    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }


    return 0;
}

/* 二分查找法 */
#include<stdio.h>
int main(void)
{
    int a[10]={1,2,3,4,5,6,7,8,9,10,};
    int low,high,mid,n=10,x;


    printf("Enter x: ");
    scanf("%d",&x);


    low=0;high=n-1;
    while(low<=high) {
        mid=(low+high)/2;
        if(x==a[mid])
            break;
        else if(x<a[mid])
            high=mid-1;
        else 
            low=mid+1;
    }
    if(low<=high)
        printf("Index is %d\n",mid);
    else 
        printf("Not Found\n");


    return 0;
}

/* 找出矩阵中的最大值及其行下标和列下标 */
#include<stdio.h>
int main(void)
{
    int col,i,j,row;
    int a[3][2];


    printf("Enter 6 integers:\n");
    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");
    }



    row=col=0;
    for(i=0;i<3;i++)
        for(j=0;j<2;j++)
            if(a[i][j]>a[row][col]){
                row=i;
                col=j;
          }
    printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);



    return 0;
}

/* 选择法排序 */
#include<stdio.h>
int main(void)
{
    int i,index,k,n,temp;
    int a[10];


    printf("Enter n:");
    scanf("%d",&n);
    printf("Enter %d integers:",n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);


    for(k=0;k<n-1;k++){
        index=k;
        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");



    return 0;
}

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


    printf("Enter n:");
    scanf("%d",&n);
    printf("Enter %d integers:",n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);


    index=0;
    for(i=1;i<n;i++)
        if(a[i]<a[index])
            index=i;


    printf("min is %d\tsub is %d\n",a[index],index);


    return 0;
}

/* 在数组中查找一个给定的数 */
#include<stdio.h>
int main(void)
{
    int i,flag,x;
    int a[5];


    printf("Enter 5 integers:");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    printf("Enter x:");
    scanf("%d",&x);


    flag=0;
    for(i=0;i<5;i++)
        if(a[i]==x){
            printf("Index is %d\n",i);
            flag=1;
            break;
        }
    if(flag==0)
        printf("Not Found\n");


    return 0;
}

posted @ 2013-10-08 16:23  mo77  阅读(471)  评论(0)    收藏  举报