|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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官方接口),如未能正确解答您的问题,请继续追问。
|
|