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