Eat.随 发表于 2023-11-7 19:09:19

求助

请问不用if以及switch如何编写一个用数字对应行列的公式
运行时是这样的,用1,2,3,4,5,6,7,8,9分别对应一个三×三的行列
输入1的时候,出来第一行第一列。以此类推

isdkz 发表于 2023-11-7 19:09:29

你可以使用一个二维数组来实现这个功能,而不使用if或switch语句。数组的每个元素对应于三×三矩阵的每一个位置。

首先,你可以创建一个二维数组来表示这个三×三矩阵,如下所示:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

然后,你可以根据用户输入的数字来确定对应的行和列。假设用户输入的数字为input,那么对应的行和列可以通过以下计算得到:

int row = (input - 1) / 3;
int col = (input - 1) % 3;

这里使用了取模运算符(%)来计算列数,使用了整数除法(/)来计算行数。

最后,你可以使用row和col来访问matrix数组中的元素,即第row行第col列的元素:

int value = matrix;

这样,你就可以根据用户输入的数字来获取对应的行列位置上的值。

Mike_python小 发表于 2023-11-7 19:10:06

关于不使用if和switch编写数字对应行列的公式

你可以使用数学计算来实现这个功能。假设用户输入的数字是n,那么可以使用以下公式来计算对应的行和列:

行号 = (n - 1) / 3
列号 = (n - 1) % 3

在这里,我们假设行和列的编号从0开始。对于输入的数字n,首先将其减去1,然后分别除以3得到行号,取余数得到列号。这样就可以确保输入1到9对应不同的行列位置。

下面是一个简单的C++示例代码,演示如何使用上述公式实现数字对应行列的功能:


#include <iostream>

int main() {
    int n;
    std::cout << "请输入数字(1-9):";
    std::cin >> n;

    // 计算行号和列号
    int row = (n - 1) / 3;
    int col = (n - 1) % 3;

    std::cout << "数字 " << n << " 对应的行列位置为:第 " << row + 1 << " 行,第 " << col + 1 << " 列。" << std::endl;

    return 0;
}


在这个示例中,我们使用了数学公式来计算行号和列号,而不是使用if或者switch语句。这样可以使代码更加简洁和高效。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 求助