练习题:二维数组

练习题

第一题

一个二维数组赋了初值,用户输入一个数,在该二维数组中查找。找到则返回行列位置,没找到则提示。

代码

#include <stdio.h>

int main()

{

  int array[4][4] = {
      {1, 2, 3, 4},
      {5, 6, 7, 8},
      {9, 10, 11, 12},
      {13, 14, 15, 16}};
  int searchValue;
  int found = 0;

  printf("请输入要查找的数字:");
  scanf("%d", &searchValue);

  int ROWS = 4,COLS = 4;

  for (int i = 0; i < ROWS; i++)
  {
    for (int j = 0; j < COLS; j++)
    {
      if (array[i][j] == searchValue)
      {
        printf("找到数字 %d,位置在行 %d,列 %d。\n", searchValue, i, j);
        found = 1;
        break;
      }
    }
    if (found)
    {
      break;
    }
  }

  if (!found)
  {
    printf("在数组中未找到数字 %d。\n", searchValue);
  }

  return 0;
}

执行结果

在这里插入图片描述

第三题

在行列相等数组计算主对角线元素的和

#include <stdio.h>

int main()
{
    int n;
    int sum = 0;

    // 输入方阵的大小
    printf("请输入方阵的大小(n x n): \n");
    scanf("%d", &n);

    int matrix[n][n];

    // 输入方阵的元素
    printf("请输入方阵的元素(每行 %d 个整数,共 %d 行):\n", n, n);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            scanf("%d", &matrix[i][j]);
        }
    }

    // 计算主对角线元素之和
    for (int i = 0; i < n; i++)
    {
        sum += matrix[i][i];
    }

    printf("主对角线元素之和为: %d\n", sum);

    return 0;
}

运行结果

在这里插入图片描述

第四题

计算一个矩阵下三角元素的和

代码


#include <stdio.h>

int main()
{
  int arr[4][4] = {
      {1, 2, 3, 4},
      {5, 6, 7, 8},
      {9, 10, 11, 12}};
  int sum = 0;
  int ROWS = 4,COLS = 4;

  for (int i = 0; i < ROWS; i++)
  {
    for (int j = 0; j <= i; j++)
    {
      sum += arr[i][j];
    }
  }

  printf("矩阵下三角元素的和是: %d\n", sum);

  return 0;
}

运行结果

在这里插入图片描述

第五题

电影院为了答谢影迷的支持,在某一排的某一列座位上放置了一个大礼包,放置礼物的位置具有这样的规则(行和列的平方和为开店日期 512(5月12日)); 请设计程序找出大礼包的位置,(假定电影院有20排,每排25个座位)

#include <stdio.h>

int main(int argc, char *argv[])
{
    int arr[20][25];
    int sum;

    for (int i = 0; i < 20; i++)
    {
        for (int j = 0; j < 25; j++)
        {
            sum = i * i + j * j;
            if (sum == 512)
            {
                printf("大礼包在第%d行,第%d列!\n", i , j ); 
                break;
            }
        }
    }
    return 0;
}

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值