zoukankan      html  css  js  c++  java
  • 求出二维数组主对角线、次对角线以及周边元素之和

    某个同学的题目,写了一下。

    题目大概是这样的:

    编写函数,求出二维数组主对角线、次对角线以及周边元素之和。

    要求:二维数组的行数、列数、数组元素在main函数中由键盘输入。

    #include <stdio.h>
    
    int main()
    {
        int row,col;
        printf("请输入“行数”和“列数”:");
        scanf("%d,%d",&row,&col);
        printf("请为%d*%d数组赋值:
    ",row,col);
    
        int arr[row][col];
        for(int i = 0; i < row; i++)
        {
            for(int j = 0; j < col; j++)
            {
                printf("当前[%d,%d]:",j,i);
                scanf("%d",&arr[j][i]);
            }
        }
        int count = row > col ? col : row;
        int xSpeed = (row - 0)/count;
        int ySpeed = (col - 0)/count;
        printf("X轴每次递增%d个下标
    ",xSpeed);
        printf("Y轴每次递增%d个下标
    ",ySpeed);
    
        //这里要考虑对角线不标准情况,比如3*4的矩形
    
        int numA = 0;
        int x=0,y=0;
        for(int i = 0; i < count; i++)
        {
            printf("%d,%d
    ",x,y);
           numA += arr[x][y];
           x+=xSpeed;
           y+=ySpeed;
    
            //这里要考虑对角线不标准情况,比如3*4的矩形
            //对角线的最后一位可能不是右下角的坐标,直接强制指向右下角坐标
           if(x == col-1 && y != row-1 || x != col-1 && y == row-1)
           {
               x = row-1;
               y = col -1;
           }
    
        }
        printf("主对角线之和为:%d
    ",numA);
    
        int numB = 0;
        x = col-1;
        y = 0;
        for(int i = 0; i < count; i++)
        {
            printf("%d,%d
    ",x,y);
           numB += arr[x][y];
           x-=xSpeed;
           y+=ySpeed;
            //这里要考虑对角线不标准情况,比如3*4的矩形
            //对角线的最后一位可能不是左下角的坐标,直接强制指向左下角坐标
           if(x == 0 && y != row-1 || x != 0 && y == row-1)
           {
               x = 0;
               y = row -1;
           }
        }
        printf("次对角线之和为:%d
    ",numB);
    
    
        int numC=0;
        for (int i =0;i < row;i ++)
        {
            for (int j= 0; j < col; j++)
            {
                if(i==0 || j == 0 || i == row-1 || j == col -1)
                {
                    numC += arr[i][j];
                }
            }
        }
        printf("周边长度之和:%d
    ",numC);
    }
    

      某位同学,做人很重要啊!

  • 相关阅读:
    Python函数
    mysql实现体温管理系统
    python操作Mysql
    Python列表,元祖
    word中标题去掉前面的点
    关于浏览器被劫持解决方法
    小程序开发问题
    微信小游戏开发
    yii2修改默认控制器和布局视图
    yii2的url美化设置
  • 原文地址:https://www.cnblogs.com/qq1223558/p/13984447.html
Copyright © 2011-2022 走看看