C语言二维数组的运用:矩阵

二维数组的运用:矩阵

(难度**)编写程序,从键盘输入一个正整数n(3≤n≤6),再输入n阶方阵中的元素,要求实现以下功能:
(1)求出各行元素之和,并输出。
(2)求出每一行元素的最大值,并输出。
(3)求出每一列元素的最小值,并输出。
(4)分别求两条对角线上的各元素之和,输出结果。

  • 我写的代码
#include
int main()
{
 int a;
 printf("请输入n的值(3≤n≤6):");
 scanf("%d",&a);
 int x[a][a];
 printf("输入n阶方阵中元素:\n"); 
 for(int i=0;i<a;i++){
 for(int j=0;j<a;j++)
 scanf("%d",&x[i][j]);}
 printf("这个n阶方阵为:\n");
 for(int i=0;i<a;i++){
 for(int j=0;j<a;j++){
 printf("%4d",x[i][j]);}
 printf("\n");}
 for(int i=0;i<a;i++){ int sum=0;
  for(int j=0;j<a;j++){
   sum=x[i][j]+sum;
  }printf("第%d行的和为%d\n",i,sum);
 }
 for(int i=0;i<a;i++){ int max=x[i][0];
  for(int j=0;j<a;j++){
   if(max<x[i][j])
   max=x[i][j];
  }printf("第%d行的最大值为%d\n",i,max);
 }
 
 for(int j=0;j<a;j++){
 int min=x[0][j];
 for(int i=0;i<a;i++){
  if(a>x[i][j])
   min=x[i][j];}
 printf("第%d列的最小值为%d\n",j,min);}
 int q=0,w=0;
 for(int i=0;i<a;i++){
  for(int j=0;j<a;j++){
   if(i==j)
   q+=x[i][j];
   if(i+j==a-1)
   w+=x[i][j];}}
   printf("正对角线和为:%d\n副对角线和为:%d",q,w);
 return 0;
}
  • 新手写的,可能不是最优解,但勉强解决了问题,如果你感到对你有所帮助,点个赞吧!!!
    祝你幸福!

你可能感兴趣的:(笔记,c语言,程序设计)