【发布时间】:2018-12-28 07:54:20
【问题描述】:
我有一个 6x10 数组,它定义了我应该打印的形状。例如
{'a','b','b','b','c','c','c','d','e','e'},
{'a','b','f','f','f','c','d','d','d','e'},
{'a','b','f','f','g','c','h','d','e','e'},
{'a','i','i','g','g','h','h','h','j','j'},
{'a','i','g','g','k','h','j','j','j','l'},
{'i','i','k','k','k','k','l','l','l','l'}
和这张图一样:
我的代码是这样的:
void PrintSolution()
{
for (i=0; i<6 ; i++)
{
for (j=0; j<10 ; j++)
{
char a=board[i][j], b=board[i][j+1], c=board[i+1][j+1], d=board[i+1][j];
if (a==b==c==d)
cout<<(char)32;
if (a==d && b==c && a!=c)
cout<<(char)179;
if (b==c && a!=b && a!=d && c!=d)
cout<<(char)180;
if (a==b==c && d!=a)
cout<<(char)191;
if (a==c==d && b!=a)
cout<<(char)192;
if (c==d && a!=b && a!=d && b!=c)
cout<<(char)193;
if (a==b && a!=c && a!=d && d!=c)
cout<<(char)194;
if (a==d && a!=c && a!=b && b!=c)
cout<<(char)195;
if (a==b && c==d && a!=c)
cout<<(char)196;
if (a!=b && b!=c && a!=d && d!=c)
cout<<(char)197;
if (b==c==d && a!=b)
cout<<(char)217;
if (a==b==d && a!=c)
cout<<(char)218;
}
cout<<endl;
}
cout<<endl;
}
它查找矩阵中的每四个元素,并相应地打印正确的字符,但它打印出一团糟!我不知道是否应该更改算法或在代码中添加一些细节。
提前致谢。
【问题讨论】:
-
请使用tour 并阅读How to Ask。此外,像您这样的问题必须带有minimal reproducible example,即您应该首先将您的问题归结为核心。否则,您的问题将被视为题外话。
-
请注意参考图片中使用了多少个字符(不应该是图像,而是复制粘贴的文本)来绘制五联骨牌。您还应该在访问越界数组之前检查索引。
-
if (a==b==c==d)嗯.. 你收到警告了吗? -
@Bob__ 我不知道如何找到字符数。这只是一张没有更多细节的图片。
-
@4386427 不,我没有收到相关消息。