#include<stdioh>
void main(void)
{
int b[5][5],i,k,j=4;
int a[5][5]={
0,11,12,7,9,
1,9,7,4,5,
20,13,18,3,1,
14,5,6,8,2,
15,9,17,4,1
for(i=0;i<5;i++)
{
for(k=0;k<5;k++)
{
b[j][k]=a[i][k];
}
j--;
} //完成数组转换b
printf("输出矩阵:b=\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%-5d",b[i][j]); //输出b
printf("\n");
}
}
#include<stdioh>
void main()
{
// int a=-1;
// printf("%12o\n",a);
float a[3][3]={143,26,39,3,3,6,3,4,2};
float x; int i,j;
float maxRow[3];//记录每行的最大值
//记录每行的最大值 到maxRow[i]
for(i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
if( j==0)
{
maxRow[i]=a[i][j];
}else
{
if(maxRow[i]<a[i][j]){
maxRow[i]=a[i][j];
}
}
}
}
//输出3行3列,每个值除以该行的最大的
for(i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
printf("%2f ",a[i][j]/maxRow[i]);//保留2位小数
}
printf("\n");
}
}
运行结果:
100 018 027
050 050 100
075 100 050
#include <stdioh>
#include <stdlibh>
/ 初始化矩阵A /
void Init(int A[4][4])
{
int i,j;
srand((unsigned)time(NULL));
for(i=0; i<4; i++)
for(j=0; j<4; j++)
{
A[i][j] = rand()%100; / 得到随机整数,并使其在100以内 /
}
}
/ 显示矩阵 /
void Display(int A[4][4])
{
int i,j;
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%d\t", A[i][j]);
printf("\n");
}
}
/ 统计矩阵的所有元素之和 /
int Sum(int A[4][4])
{
int i,j;
int sum = 0;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
{
sum += A[i][j];
}
return sum;
}
/ 对矩阵的每一行进行排序(简单选择排序算法,非递减排列),结果存储在另一个矩阵中 /
void Sort(int A[4][4], int B[4][4])
{
int row, i, j, k;
int temp;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
{
B[i][j] = A[i][j];
}
for(row=0; row<4; row++)
{
for(i=0; i<3; i++)
{
k = i;
for(j=i+1; j<4; j++)
if(B[row][j] < B[row][k])
k = j;
if(k != i)
{
temp = B[row][k];
B[row][k] = B[row][i];
B[row][i] = temp;
}
}
}
}
void main()
{
int A[4][4], B[4][4];
int sum;
Init(A);
printf("Array A :\n");
Display(A);
sum = Sum(A);
printf("sum = %d\n", sum);
Sort(A, B);
printf("Array B :\n");
Display(B);
}
求一个二维数组元素的周边之和:源程序如下:
#define N 3//宏定义N=3
#include <stdioh>
void main()
{
int number[N][N] = { {1,2,3},{4,5,6},{7,8,9} };//定义二维数组并赋初值
int i, j;//定义循环变量
int sum = 0;//定义加和变量,并初始化赋值为0
for (i = 0; i < N; i++)//控制行变量遍历
for (j = 0; j < N; j++)//控制列变量遍历
if (i == 0 || i == (N-1) || j == 0 || j == (N-1))//判断是否为周边元素
sum += number[i][j];//进行求和运算
printf("%d", sum);//输出和
}
其中,上述程序中变量N,为数组的行列维数,可灵活进行修改。
程序运行结果如下:
扩展资料:
用行指针实现求一个二维数组四周元素的平均值。
#include <stdioh>
#include <stdlibh>
#define M 4
#define N 5
float fun(int(p)[N], int m)
{
int i, j, k = 0;//定义循环变量
float sum, ave;//定义和变量、平均数变量
sum = 0;//初始化和变量为0
for (i = 0; i < m; i++)//控制行变量遍历
for (j = 0; j < N; j++)//控制列变量遍历
if(i == 0 || i == (m-1) || j == 0 || j == (N-1))//判断是否为周边元素
{
sum += p[i][j]; //进行求和运算
k++;
}
ave = sum / k;//求平均
return ave;//返回平均数
}
int main()
{
int a[M][N] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20} };
int i, j;
float ave;
for (i = 0; i < M; i++)//遍历打印出数组全部元素
{
for (j = 0; j < N; j++)
printf("%4d", a[i][j]);
printf("\n");
}
ave = fun(a,M);//函数计算并返回平均值
printf("average=%2f\n", ave);//输出平均值
system("pause");//任意键继续
return 0;
}
扩展资料程序运行结果:
#include <stdioh>
#include <malloch>
#include <timeh>
#include <stdlibh>
int main()
{
int m,n;
int a;
int i,j;
printf("输入m和n,空格分隔:");
scanf("%d%d",&m,&n);
a=(int)malloc(sizeof(int)m);
for(i=0;i<m;i++)
{
a[i]=(int)malloc(sizeof(int)n);
}
srand(time(0));
printf("随机填充数组如下:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%100;
printf("%-4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)
free(a[i]);
free(a);
return 0;
}
以上就是关于C语言程序,二维数组全部的内容,包括:C语言程序,二维数组、c语言编程二维数组、C语言,一个简单的二维数组程序设计.大虾来帮帮忙啊...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)