gpt4 book ai didi

c - 嵌套 for 循环比预期早结束

转载 作者:行者123 更新时间:2023-11-30 14:48:45 25 4
gpt4 key购买 nike

我的代码:

#include <stdio.h>
#include <math.h>

void block(int r, char a, char b);

int main(){
block(2, '+', '-');
}

void block(int r, char a, char b){
int i;
char x = a;
char y = b;
for (i = 1; i <= r; i++){
if ( i%2 == 1){
for (i = 1; i <= r; i++){
printf("%c", x);
}
for (i = 1; i <= r; i++){
printf("%c", y);
}
} else
{
for (i = 1; i <= r; i++){
printf("%c", x);
}
for (i = 1; i <= r; i++){
printf("%c", y);
}
}
printf("\n");
}
return;
}

预期输出:

++--
--++

我得到了什么:

++--

第一行之后不打印任何内容。例如,对于 r = 5,它正确打印第一行+++++----- 但不打印解决方案的其余行。

正确的解决方案:

+++++-----
-----+++++
+++++-----
-----+++++
+++++-----

最佳答案

感谢@rustyx

这最终为我解决了问题。

#include <stdio.h>
#include <math.h>

void block(int r, char a, char b);

int main(){
block(5, '+', '-');
}

void block(int r, char a, char b){
int i;
char x = a;
char y = b;
for (i = 1; i <= r; i++){
if ( i%2 == 1){
int j;
for (j = 1; j <= r; j++){
printf("%c", x);
}
for (j = 1; j <= r; j++){
printf("%c", y);
}
}
else{
int k;
for (k = 1; k <= r; k++){
printf("%c", y);
}
for (k = 1; k <= r; k++){
printf("%c", x);
}
}
printf("\n");
}
return;
}

给出这个结果:

+++++-----
-----+++++
+++++-----
-----+++++
+++++-----

关于c - 嵌套 for 循环比预期早结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50197282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com