鱼C论坛

 找回密码
 立即注册
查看: 1063|回复: 2

[已解决]求助

[复制链接]
发表于 2023-11-7 19:09:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问不用if以及switch如何编写一个用数字对应行列的公式
运行时是这样的,用1,2,3,4,5,6,7,8,9分别对应一个三×三的行列
输入1的时候,出来第一行第一列。以此类推
最佳答案
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[row][col];

这样,你就可以根据用户输入的数字来获取对应的行列位置上的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[row][col];

这样,你就可以根据用户输入的数字来获取对应的行列位置上的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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语句。这样可以使代码更加简洁和高效。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表