请问一个C语言问题.2、编写一个函数,对n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列.分析:题目要求矩阵两
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/13 12:21:11
请问一个C语言问题.
2、编写一个函数,对n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列.
分析:
题目要求矩阵两行元素的平均值按递增顺序排列,由于每行元素个数相等,因此按平均值排列与按每行元素之和排列是一个意思.所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序.注意在排序时,若有元素移动,则与之相应的行中各元素也必须做相应的变动.
参考代码:
#include
#define N 3
voidTranslation(int *matrix,int n);
void main()
{
int i,j,n=N; int a[N][N];
//printf("\n请输入矩阵行列长度 n:\n");
//scanf("%d",&n);
printf("\n矩阵a[%d][%d]:\n",n,n);
for(i=0;i
2、编写一个函数,对n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列.
分析:
题目要求矩阵两行元素的平均值按递增顺序排列,由于每行元素个数相等,因此按平均值排列与按每行元素之和排列是一个意思.所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序.注意在排序时,若有元素移动,则与之相应的行中各元素也必须做相应的变动.
参考代码:
#include
#define N 3
voidTranslation(int *matrix,int n);
void main()
{
int i,j,n=N; int a[N][N];
//printf("\n请输入矩阵行列长度 n:\n");
//scanf("%d",&n);
printf("\n矩阵a[%d][%d]:\n",n,n);
for(i=0;i
![请问一个C语言问题.2、编写一个函数,对n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列.分析:题目要求矩阵两](/uploads/image/z/14997346-34-6.jpg?t=%E8%AF%B7%E9%97%AE%E4%B8%80%E4%B8%AAC%E8%AF%AD%E8%A8%80%E9%97%AE%E9%A2%98.2%E3%80%81%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E5%87%BD%E6%95%B0%2C%E5%AF%B9n%C3%97n%E7%9F%A9%E9%98%B5%2C%E9%80%9A%E8%BF%87%E8%A1%8C%E5%8F%98%E6%8D%A2%2C%E4%BD%BF%E5%85%B6%E6%AF%8F%E8%A1%8C%E5%85%83%E7%B4%A0%E7%9A%84%E5%B9%B3%E5%9D%87%E5%80%BC%E6%8C%89%E9%80%92%E5%A2%9E%E9%A1%BA%E5%BA%8F%E6%8E%92%E5%88%97.%E5%88%86%E6%9E%90%EF%BC%9A%E9%A2%98%E7%9B%AE%E8%A6%81%E6%B1%82%E7%9F%A9%E9%98%B5%E4%B8%A4)
#include<stdio.h>
#define N 3
void Translation(int matrix[][N]);
void main() {
\x09int i,j,n = N;
\x09int a[N][N];
printf("输入 %d 个整数:",N * N);
for(i = 0; i < N; ++i)
\x09 for(j = 0; j < N; ++j)
\x09\x09 scanf("%d",&a[i][j]);
printf("转换前:\n");
for(i = 0;i < N; ++i) {
\x09 for(j = 0; j < n; ++j)
\x09\x09 printf("%4d",a[i][j]);
\x09 printf("\n");
}
Translation(a);
printf("转换后:\n");
for(i = 0;i < N; ++i) {
\x09 for(j = 0; j < n; ++j)
\x09\x09 printf("%4d",a[i][j]);
\x09 printf("\n");
}
}
void Translation(int a[][N]) {
\x09int i,j,k,t,b[N];
\x09for(i = 0;i < N;i++) {
\x09\x09b[i] = 0;
\x09\x09for(j = 0; j < N; ++j)
\x09\x09\x09b[i] += a[i][j];
\x09}
\x09for(i = 0; i < N - 1; ++i) {
\x09\x09k = i;
\x09\x09for(j = i + 1; j < N; ++j) {
\x09\x09\x09if(b[k] > b[j]) k = j;
\x09\x09}
\x09\x09if(k != i) {
\x09\x09\x09t = b[i];
\x09\x09\x09b[i] = b[k];
\x09\x09\x09b[k] = t;
\x09\x09\x09for(j = 0; j < N; ++j) {
\x09\x09\x09\x09t = a[i][j];
\x09\x09\x09\x09a[i][j] = a[k][j];
\x09\x09\x09\x09a[k][j] = t;
\x09\x09\x09}
\x09\x09}
\x09}
}
#define N 3
void Translation(int matrix[][N]);
void main() {
\x09int i,j,n = N;
\x09int a[N][N];
printf("输入 %d 个整数:",N * N);
for(i = 0; i < N; ++i)
\x09 for(j = 0; j < N; ++j)
\x09\x09 scanf("%d",&a[i][j]);
printf("转换前:\n");
for(i = 0;i < N; ++i) {
\x09 for(j = 0; j < n; ++j)
\x09\x09 printf("%4d",a[i][j]);
\x09 printf("\n");
}
Translation(a);
printf("转换后:\n");
for(i = 0;i < N; ++i) {
\x09 for(j = 0; j < n; ++j)
\x09\x09 printf("%4d",a[i][j]);
\x09 printf("\n");
}
}
void Translation(int a[][N]) {
\x09int i,j,k,t,b[N];
\x09for(i = 0;i < N;i++) {
\x09\x09b[i] = 0;
\x09\x09for(j = 0; j < N; ++j)
\x09\x09\x09b[i] += a[i][j];
\x09}
\x09for(i = 0; i < N - 1; ++i) {
\x09\x09k = i;
\x09\x09for(j = i + 1; j < N; ++j) {
\x09\x09\x09if(b[k] > b[j]) k = j;
\x09\x09}
\x09\x09if(k != i) {
\x09\x09\x09t = b[i];
\x09\x09\x09b[i] = b[k];
\x09\x09\x09b[k] = t;
\x09\x09\x09for(j = 0; j < N; ++j) {
\x09\x09\x09\x09t = a[i][j];
\x09\x09\x09\x09a[i][j] = a[k][j];
\x09\x09\x09\x09a[k][j] = t;
\x09\x09\x09}
\x09\x09}
\x09}
}
请问一个C语言问题.2、编写一个函数,对n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列.分析:题目要求矩阵两
C语言(指针):编写一个函数实现n*n矩阵转置.在主函数中用scanf输入矩阵元素;将数组名作为函数实参.
c语言题目:输入一个n*n矩阵个元素的值,求出两个对角线元素之和.
C语言函数 编程输入一个n*n矩阵中各元素的值,找出两条对角线上的元素之和
输入一个n×n矩阵个元素的值,求出两条对角线元素各自的乘积.用c语言
C语言.输入一个m×n的矩阵,计算每行的和.
c语言:请编写一个函数,可调用它来计算m*n矩阵与n*m矩阵的积.主函数为m,n和两个矩阵提供数值.
一个n阶矩阵对角化得到的对角矩阵的对角线上元素就是原矩阵的特征值,请问如果做正交对角变换得到的对角矩阵仍符合上面吗,及对
编写一个函数,使给定的一个n*n矩阵转置,即行列互换.
VB编程,有一个n × m的矩阵,其各元素的值由随机函数生成(范围50~150).编写程序,找出其中最大的元素
用C语言编写一个输出100(或n)行4列的星型矩阵?怎么写.
一个5x5的螺旋矩阵如下所示,C语言编写程序输出N x N的螺旋矩阵 (N