此代码验证公式是什么意思?

What does this Code validation formula mean?

本文关键字:是什么 意思 代码 验证      更新时间:2023-10-16
while(cin>>seats){

if(seats>=0 &&seats<36){
const int row=(seats-1)/7;   // <-
const int col=(seats-1)%7;   // <-
arr[row][col]=0;
std::cout<<"n Seat successfully reserved!n";

标有<-的行中关于常量的代码让我感到困惑。它如何更新座位以及为什么除以 7 和模 7 的公式。如果不够清晰,我可以提供整个代码。这是关于我的家庭作业的座位预订计划。

假设您有 100 个座位,分为 10 行,每行 10 个座位;座位、行和列从 0 开始编号,如下所示:

Seat  0 is in row 0, column 0.
Seat  1 is in row 0, column 1.
...
Seat  9 is in row 0, column 9.
Seat 10 is in row 1, column 0.
Seat 11 is in row 1, column 1.
Seat 12 is in row 1, column 2.
...
Seat 99 is in row 9, column 9.

明白了吗?井

  • 行索引始终是座位索引,除以 10;
  • 列索引是
  • 减去前一行中座位后剩余的索引,即列索引是座位索引模 10。

在您的情况下,您有不同的席位、行和列数,但原理是相同的。


话虽如此...如果您有 36 个席位,您确定行和列的长度不应该为 6 吗?如果他们应该,那么你应该有/ 6% 6,而不是/7% 7.此外,正如@MikeCAT指出的那样 - 如果座位是从 0 开始的,则不应该减去 1。