10.1 求一个3×3整型矩阵对角线元素之和
#include <stdio.h>
int main() {
void ergodic(int array[3][3]);
int i,sum=0,array[3][3]={{1,2,3},{4,5,6},{7,8,9}};
ergodic(array);
for(i=0;i<3;i++){
sum +=array[i][i]+array[i][2-i];
}
printf("对角线元素之和为:%d",sum);
return 0;
}
void ergodic(int array[3][3]){
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%2d",array[i][j]);
}
printf("\n");
}
}
10.2 有一个已经排好序的数组,要求插入一个数,还是原来的序
#include <stdio.h>
int main() {
void ergodic(int array[],int n);
int i,n,j,temp,array[3]={5,8,10},newArray[4];
ergodic(array,3);
printf("插入数据:n=");
scanf("%d",&n);
for(i=0;i<3;i++){
if(array[i]>n){
break;
}
}
for(j=0;j<i;j++){
newArray[j]=array[j];
}
newArray[i]=n;
for(j=i;j<4;j++){
newArray[j+1]=array[j];
}
ergodic(newArray,4);
return 0;
}
void ergodic(int array[],int n){
int i;
for(i=0;i<n;i++){
printf("%2d",array[i]);
}
}
10.3将一个数组中的值逆序重新存储
#include <stdio.h>
#define N 5
int main() {
void ergodic(int array[],int n);
int i,n,j,temp,array[N]={5,8,10,12,25};
printf("转换前 ");
ergodic(array,N);
for(i=0;i<N/2;i++){
temp=array[4-i];
array[4-i]=array[i];
array[i]=temp;
}
printf("\n转换后 ");
ergodic(array,N);
return 0;
}
void ergodic(int array[],int n){
int i;
for(i=0;i<n;i++){
printf(" %d",array[i]);
}
}
10.4 输出杨辉三角形
#include <stdio.h>
int main() {
int i,j,array[20][20]={0};
for(i=0;i<10;i++){
array[i][0]=1;
for(j=1;j<10;j++){
array[i+1][j]=array[i][j-1]+array[i][j];
}
for(j=0;j<10;j++){
if(array[i][j]!=0){
printf(" %d",array[i][j]);
}
}
printf("\n");
}
}
10.5 找出一个二维数组中的鞍点
#include <stdio.h>
int main() {
int i,j,m,n,array[3][3]={{1,2,3},{6,5,4},{8,7,9}};
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d",array[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++){
m=0;
for(j=1;j<3;j++){
if(array[i][m]<array[i][j]){
m=j;
}
}
n=0;
for(j=0;j<3;j++){
if(array[n][m]>array[j][m]){
n=j;
}
}
if(array[n][m]==array[i][m]){
printf("第%d行靶点为:%d\n",i+1,array[i][m]);
}else{
printf("第%d行,无靶点\n",i+1);
}
}
}