c++ 这个程式码片段是以什麽语言撰写/它有什麽功能?[closed]

njthzxwz  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(119)
    • 想要 改进 此 问题 吗 ? * * 通过 editing this post 添加 详细 信息 并 阐明 问题 。

6 天 前 关闭 。
Improve this question 格式
我 的 一 位 教授 在 我 的 离散 数学 课 上 用 这个 代码 试图 解释 数字 集 之类 的 东西 , 但 我 不 知道 它 实际 上 是 做 什么 的 。 我 猜 它 是 Delphi 或 类似 的 东西 ? 有人 能 解释 一下 吗 ( 特别 是 M[r,k] := M[r,k] or M[c,k] ) , 或者 用 C + + 写 同样 的 东西 ?

for c := 1 to n do
  for r := 1 to n do
    if M[r,c] then
      for k := 1 to n do
        M[r,k] := M[r,k] or M[c,k]

中 的 每 一 个

7jmck4yq

7jmck4yq1#

这看起来很像“Pascal”编程语言。
它取一个n个大小的正方形矩阵,矩阵中充满了布尔值。2检查其中的每一个值。
如果行'r'和列'c'上的布尔值为真,则分别对行'r'的每个元素和行'c'的每个元素应用“or”运算,并将结果存储在行'r'上。
例如,“n”= 3随机矩阵
| | c1型|c2语言|c3级|
| - -|- -|- -|- -|
| r1接口|第0页|第0页|一个|
| r2接口|第0页|第0页|第0页|
| r3接口|第0页|一个|第0页|
如果M[1,3]和M[3,2]为真,则将发生这些操作:

//as M[1,3] is true
M[1,1] := M[1,1] or M[3,1];
M[1,2] := M[1,2] or M[3,2]; 
M[1,3] := M[1,3] or M[3,3];

//as M[3,2] is true
M[3,1] := M[3,1] or M[2,1];
M[3,2] := M[3,2] or M[2,2]; 
M[3,3] := M[3,3] or M[2,3];

所以矩阵会变成。
| | c1型|c2语言|c3级|
| - -|- -|- -|- -|
| r1接口|第0页|一个|一个|
| r2接口|第0页|第0页|第0页|
| r3接口|第0页|一个|第0页|
希望这对你有帮助。
在c中,它看起来像(注意,在c中数组是从0开始的)。

//bool M[n][n];

for (int r=0;r<n;r++){
  for (int c=0;c<n;c++){
    if (M[r][c]) {
      for (int k=0;k<n;k++){
        M[r][k] = M[r][k] || M[c][k];
      }
    }
  }
}

相关问题