试图编写一个用C语言输出棋盘的代码
我试图编写一个代码,通过使用for循环输出带有星号的棋盘式效果。我似乎无法让它工作。这是我的密码。非常感谢您的帮助试图编写一个用C语言输出棋盘的代码,c,for-loop,printf,C,For Loop,Printf,我试图编写一个代码,通过使用for循环输出带有星号的棋盘式效果。我似乎无法让它工作。这是我的密码。非常感谢您的帮助 #include <stdio.h> int main (void) { int a; int b; for(a=1; a<=10; a+=2) { printf("* * * * * * * * * *"); } for (b=2; b<=10; b+=2) { printf(
#include <stdio.h>
int main (void)
{
int a;
int b;
for(a=1; a<=10; a+=2)
{
printf("* * * * * * * * * *");
}
for (b=2; b<=10; b+=2)
{
printf(" * * * * * * * * * ");
}
return 0;
}
#包括
内部主(空)
{
INTA;
int b;
对于(a=1;a尝试使用单个循环和a%2
在两种类型的行之间交替:
#include <stdio.h>
int main (void)
{
for (int a = 1; a <= 10; a += 1)
{
if (a % 2 == 0)
printf(" * * * * * * * * * \n");
else
printf("* * * * * * * * * *\n");
}
return 0;
}
#包括
内部主(空)
{
对于(int a=1;a您需要交替每一行
#include <stdio.h>
int main (void) {
int a;
for(a=1; a<=10; a+=2) {
printf("* * * * * * * * * *\n");
printf(" * * * * * * * * * \n");
}
return 0;
}
#包括
int main(void){
INTA;
对于(a=1;a您正在打印支票板的所有奇数行,然后是所有偶数行。此外,您还错过了回车。您只能尝试使用一个循环
#include <stdio.h>
int main (void)
{
for(int a=1; a<=10; a+=2)
{
printf("* * * * * * * * * *\n")
printf(" * * * * * * * * * \n")
}
return 0;
}
#包括
内部主(空)
{
对于(inta=1;a,这里是我的解决方案,试图使它尽可能简单
#include<stdio.h>
int main() {
// We want 10 checkerboard lines, so we iterate from 0 through 9
for(int a = 0; a < 10; ++a) {
// We want to change the pattern any other line, an easy way to do this is to
// branch on whether the iterator index, a, is even (a%2 = 0), or odd (a%2 != 0).
if(a%2){
// If a is odd we print the shifted pattern, with a newline
printf(" * * * * * * * * * \n");
}else {
// if a is even, we print the normal pattern
printf("* * * * * * * * * *\n");
}
}
}
#包括
int main(){
//我们需要10行棋盘格,所以我们从0迭代到9
对于(int a=0;a<10;++a){
//我们想改变任何其他行的模式,一个简单的方法是
//分支取决于迭代器索引a是偶数(a%2=0)还是奇数(a%2!=0)。
如果(a%2){
//如果a是奇数,我们打印移位的图案,并换行
printf(“***\n”);
}否则{
//如果a是偶数,则打印正常模式
printf(“***\n”);
}
}
}
虽然打印固定大小的电路板没有问题,但为什么要限制自己输出字符串文字呢?计算机是以灵活的方式解决问题的。如果您不想要9行10/9星号,而是想要将电路板的大小增加一倍呢?或者,再添加一列和两行?您将无法更改字符串循环条件下的文字
让计算机根据简单的行数输入来计算打印什么?现在这个数字必须是奇数,所以如果输入偶数行,你可以决定加一或减一,但除此之外,编写一个算法来处理其余的行数
#include <stdio.h>
#include <stdlib.h>
#define ROWS 9
#define COLS ROWS
int main (int argc, char **argv) {
int rows = argc > 1 ? atoi (argv[1]) : ROWS,
cols = rows & 1 ? rows : (rows += 1); /* must be odd */
for (int i = 0; i < rows; i++) { /* output rows */
if ((i & 1) == 0)
putchar ('*');
for (int j = 0; j < cols; j++) /* output cols */
fputs (" *", stdout);
putchar ('\n');
}
return 0;
}
双尺寸板:
$ ./bin/checkers 19
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
当你设计你的代码时,尽可能使它变得健壮和灵活。当你可以用一种灵活的解决方案来完成同样的事情时,不要限制你的代码。
你遇到的问题是什么?要解释你的代码背后的逻辑吗?你可以考虑从实际编译的代码开始。缺少一些;
a%2
与a&1
(或!(a&1)
匹配偶数检查)相比成本相当高。@DavidC.Rankin编译器现在将优化x%2
,这在现实世界中没有什么区别,而且对于初学者来说,模方法比使用二进制运算符更清晰
$ ./bin/checkers 19
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *