字符串问题,二维数组无法换行

怎么用C语言写出这个
   *
*    *
   *     我写出来的一直是 * * * *

每一行输出之后 要加\n换行 

#include<stdio.h>
int main()
{
    printf(" *\n");
    printf("* *\n");
    printf(" *\n");
    return 0;
}

简单理解一下你这个*号的规律,可以理解为奇数行的偶数列和偶数行的奇数列显示*号,编码如下,支持更多行列可修改n,m的值

int main()
{
	int n=3,m=3;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(i%2 != j%2)
				printf("*");
			else
				printf(" ");
		}
		printf("\n");
	}
	return 0;
}

 

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章讲的很详细,请看:基于遗传算法解决二维连续型无约束优化问题
  • 除此之外, 这篇博客: C语言简单算法之指针,以二维数组形式对5个字符串进行排序中的 2.以二维数组形式对5个字符串进行排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        int n=5,i,j;
        char **str;
        char s[100];
        str=(char**)malloc(sizeof(char*)*n);
        for(i=0;i<n;i++)
        {
            str[i]=(char*)malloc(sizeof(char)*100);
            printf("请输入第%d个字符串\n",i+1);
            gets(str[i]);
        }
        puts("排序后的字符串为:");
        for(i=0;i<n;i++)
        {
            for(j=i;j<n-1;j++)
            {
                if(strcmp(str[j+1],str[j])<0)
                {
                    strcpy(s,str[j+1]);
                    strcpy(str[j+1],str[j]);
                    strcpy(str[j],s);
                }
            }
        }
        for(i=0;i<n;i++)
        {
            puts(str[i]);
        }
        for(i=0;i<n;i++)
        {
            free(str[i]);
            str[i]=NULL;
        }
        free(str);
        str=NULL;
        return 0;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^