【发布时间】:2015-10-30 18:52:18
【问题描述】:
我的程序编译好了,没问题。当我启动它并输入“AB”时,它们出现在一行上,但是当我输入“BAAB”时,“AB”在“BA”下方。我被困在这里很长时间了。如果你能解决这个问题,我会很高兴。
//它需要从键盘读取输入并出现由astersks构造的每个字母
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
char line[100] = { 'A', 'B' };
int i;
int row;
int col;
bool A[7][6] = { {0, 0, 1, 0, 0, 0}, //letter A
{1, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 1, 0},
{1, 1, 1, 1, 1, 0},
{1, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 1, 0} };
bool B[7][6] = { {1, 1, 1, 0, 0, 0}, //letter B
{1, 0, 0, 1, 0, 0},
{1, 0, 0, 1, 0, 0},
{1, 1, 1, 1, 0, 0},
{1, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 1, 0},
{1, 1, 1, 1, 0, 0} };
int main () {
//reads the input
printf ("Type a word or number, or both: ");
scanf ("%s", line);
// loop for every row of every letter
for (row = 0; row < 7; row++)
{
// loop for every inputed letter
for (i = 0; line[i]; i++)
{
// if letter is A do this...
if (line[i] == 'A')
{
// lopp for every column to read the asterisks
for (col = 0; col < 5; col++) {
if (A[row][col])
printf ("*");
else
printf (" ");
}
printf ("\n");
}
if (line[i] == 'B') {
for (col = 0; col < 5; col++) {
if (B[row][col])
printf ("*");
else
printf (" ");
}
}
}
}
return (0);
}
【问题讨论】:
标签: c arrays for-loop multidimensional-array