|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问我这样编写把fish横向打印,哪里不对,如何修改?想用指针但还是懵懵的
#include <stdio.h>
int main()
{
int i,j,k;
char str[4][7]={{
"########",
"## ",
"## ",
"###### ",
"## ",
"## ",
"## "
},
{
"####",
" ## ",
" ## ",
" ## ",
" ## ",
" ## ",
"####"
},
{
" ###### ",
"## ##",
"## ",
" ###### ",
" ##",
"## ##",
" ###### "
},
{
"## ##",
"## ##",
"## ##",
"########",
"## ##",
"## ##",
"## ##"
}};
char *p[4][7]=&str;
for (i=0;i<7;i++)
{
for (j=0;j<4;j++)
{
printf("%s",*p[j][i]);
}
}
return 0;
}
如果您想用指针数组来输出打印"FISH"这四个字母,可以按照以下方式编写代码: #include <stdio.h>int main() { char str[4][7][9] = { { "########", "## ", "## ", "###### ", "## ", "## ", "## " }, { "####", " ## ", " ## ", " ## ", " ## ", " ## ", "####" }, { " ###### ", "## ##", "## ", " ###### ", " ##", "## ##", " ###### " }, { "## ##", "## ##", "## ##", "########", "## ##", "## ##", "## ##" } }; char *str_ptr[4]; for (int i = 0; i < 4; i++) { str_ptr[i] = str[i][0]; } for (int i = 0; i < 7; i++) { for (int j = 0; j < 4; j++) { printf("%s ", str_ptr[j]); str_ptr[j] += 9; // 指针偏移9个字符的长度,指向下一行 } printf("\n"); } return 0;}
在这段代码中,我们首先定义了一个二维字符数组`str`,用来存储"FISH"这四个字母的图案。然后我们定义了一个指针数组`str_ptr`,用来存储指向`str`每个字母图案的指针。通过`for`循环将每个字母图案的第一行的地址赋值给`str_ptr`中的元素。
接着,我们使用两个嵌套的`for`循环来遍历打印每行字符。外层循环控制行数,内层循环控制每个字母图案的打印。在内层循环中,我们通过`printf`函数打印每个字母图案的当前行,然后将指针偏移9个字符的长度,以便指向下一行。
这样,就可以使用指针数组按照水平方向打印"FISH"这四个字母的图案了。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
|
|