C 中的重复字符 (A B C)

Repeating Characters (A B C) in C

给定 numRows 和 numCols,打印剧院所有座位的列表。行有编号,列有字母,如 1A 或 3E。在每个座位后打印一个 space,包括在最后一个座位后。例如:numRows = 2 和 numCols = 3 打印: 1A 1B 1C 2A 2B 2C

我有:

#include <stdio.h>

int main(void) {
   int numRows = 2;
   int numCols = 3;

   int rows = 0;
   char cols = 'A';
   char var = 'A';

   for (rows = 1; rows<=numRows; ++rows){
      for (cols = 0; cols<numCols; cols++){
         printf("%d", rows);
         printf("%c ", var);

         ++var;

      }

   }

   printf("\n");

   return 0;
}

它打印:

1A 1B 1C 2D 2E 2F

但我希望它能打印

1A 1B 1C 2A 2B 2C

如何让它重复 A B C?

将您的 for 循环更改为:

for (rows = 1; rows<=numRows; ++rows){
  for (cols = 0; cols<numCols; cols++){
     printf("%d", rows);
     printf("%c ", var + cols % 3);
  }
}

您不想更新 var 的值,因为它引用 A


这是一个更好的版本:

#include <stdio.h>

int main(void) {
    int numRows = 2;
    int numCols = 5;

    for (int row = 1; row <= numRows; row++){
        for (int col = 0; col < numCols; col++){
            printf("%d%c ", row, 'A' + col);
        }
    }
    printf("\n");
    return 0;
}
for(;;)
{
 char var='A';
 for(;;)
 {

  }
}

这样就行了!!

每次进入内循环前都需要重新设置var的值

#include <stdio.h>

int main(void) {
   int numRows = 2;
   int numCols = 3;

   int rows = 0;
   char cols = 'A';
   char var;

   for (rows = 1; rows<=numRows; ++rows){
      var = 'A';  /* This is the change you are looking for. */
      for (cols = 0; cols<numCols; cols++){
         printf("%d", rows);
         printf("%c ", var);

         ++var;

      }

   }

   printf("\n");

   return 0;
}

实现相同目标的更简单方法 -

   int numRows = 2;
   int numCols = 3;

   int rows;
   char cols;

   for (rows = 1; rows <= numRows; ++rows){
      for (cols = 'A'; cols < ('A' + numCols); cols++){
         printf("%d", rows);
         printf("%c ", cols);
      }    
   }