编写程序,要求: ①定义一4 x 4矩阵,输入每个元素的值,输出每一行最大的元素。②对矩阵进行转置并输出。
#include <stdio.h>
int main() {
int matrix[4][4];
int i, j;
// 输入矩阵元素
printf("请输入矩阵的元素:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 输出每行最大元素
printf("每行最大元素为:\n");
for (i = 0; i < 4; i++) {
int max = matrix[i][0];
for (j = 1; j < 4; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
printf("%d\n", max);
}
// 转置矩阵并输出
printf("转置后的矩阵为:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", matrix[j][i]);
}
printf("\n");
}
return 0;
}
这个思路很简单,跟你学数据结构二维表差不多,遍历元素找每行最大值
#include <stdio.h>
#define ROW 4
#define COL 4
int main()
{
int matrix[ROW][COL];
int i, j;
int max;
printf("请输入矩阵元素:\\n");
for(i=0; i<ROW; i++) {
for(j=0; j<COL; j++) {
scanf("%d", &matrix[i][j]);
}
}
printf("每一行最大的元素是:\\n");
for(i=0; i<ROW; i++) {
max = matrix[i][0];
for(j=1; j<COL; j++) {
if(max < matrix[i][j]) {
max = matrix[i][j];
}
}
printf("%d ", max);
}
printf("\\n");
printf("转置后的矩阵是:\\n");
for(i=0; i<COL; i++) {
for(j=0; j<ROW; j++) {
printf("%d ", matrix[j][i]);
}
printf("\\n");
}
return 0;
}
# include <stdio.h>
int main( )
{
float a,b,c,d,t;
printf("请输入四个数字:");
scanf("%f %f %f %f",&a,&b,&c,&d);
printf("%f %f %f %f",a,b,c,d);
if(a>b){
t=a;a=b;b=t;
}
if(a>c){
t=a;a=c;c=t;
}
if(a>d){
t=a;a=d;d=t;
}
if(b>c){
t=b;b=c;c=t;
}
if(c>d){
t=c;c=d;d=t;
}
printf("排序结果如下:\n");
printf("%f %f %f %f \n",a,b,c,d);
return 0;
}
不懂请留言,谢谢
程序解决方案:
①首先,定义一个4 x 4的矩阵,并提示用户输入每个元素的值。程序应输出每一行中最大的元素。
c++ int matrix[4][4];
c++ for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { cout << "请输入第" << i+1 << "行第" << j+1 << "列的元素值:" << endl; cin >> matrix[i][j]; } }
c++ for(int i=0; i<4; i++) { int maxVal = matrix[i][0]; // 初始化最大值为当前行第一个元素 for(int j=1; j<4; j++) { if(matrix[i][j] > maxVal) { maxVal = matrix[i][j]; } } cout << "第" << i+1 << "行最大值为:" << maxVal << endl; }
②其次,程序需要对该矩阵进行转置,并将结果输出。
c++ int transposeMatrix[4][4];
c++ for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { transposeMatrix[j][i] = matrix[i][j]; } }
c++ cout << "转置后的矩阵为:" << endl; for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { cout << transposeMatrix[i][j] << " "; } cout << endl; }
完整代码:
#include <iostream>
using namespace std;
int main() {
int matrix[4][4];
int transposeMatrix[4][4];
// 提示用户输入矩阵元素值
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
cout << "请输入第" << i+1 << "行第" << j+1 << "列的元素值:" << endl;
cin >> matrix[i][j];
}
}
// 输出每一行中最大的元素
for(int i=0; i<4; i++) {
int maxVal = matrix[i][0]; // 初始化最大值为当前行第一个元素
for(int j=1; j<4; j++) {
if(matrix[i][j] > maxVal) {
maxVal = matrix[i][j];
}
}
cout << "第" << i+1 << "行最大值为:" << maxVal << endl;
}
// 将矩阵转置
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
transposeMatrix[j][i] = matrix[i][j];
}
}
// 输出转置后的矩阵
cout << "转置后的矩阵为:" << endl;
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
cout << transposeMatrix[i][j] << " ";
}
cout << endl;
}
return 0;
}