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);
}
}
给定 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);
}
}