我的作业需要一些帮助。我花了大约2个小时就完成了这件事,但我无法理解它(c编程)。我必须像这样打印一个x:
* *
* *
* *
* *
*
* *
* *
* *
* *
程序的步骤应该像这样工作。 1.用户输入一个大小的数字(这个单个数字基本上是宽度和高度)。此外,我们可以假设用户总是输入一个奇数(所以我们不需要条件)。 它根据那个大小绘制了X.
但是,我只能使用while循环,if语句,scanf和printf。没别了。
这是我到目前为止所能得到的(只是对角线)
row = 0;
while (row < size) {
column = 0;
while (column < size) {
if (row == column) {
printf("*");
} else {
printf(" ");
}
column++;;
}
printf("\n");
row++;
}
答案 0 :(得分:1)
这应该有效
#include <stdio.h>
int main()
{
int size, row, column;
scanf("%d", &size);
row = 0;
while (row < size)
{
column = 0;
while (column < size)
{
if (column == row || column == size - row - 1)
{
printf("x");
}
else
{
printf(" ");
}
column++;
}
printf("\n");
row++;
}
return 0;
}
答案 1 :(得分:0)
#include <stdio.h>
int main(void) {
int size = 11; //this should be the size given by user.
char line[size + 1];
int i;
for(i = 0; i < size; i++) line[i] = ' ';
line[size] = '\0';
int se = 0;
int sw = size - 1;
while(se < size && sw >= 0){
line[se] = line[sw] = 'x';
printf("%s\n", line);
line[se++] = line[sw--] = ' ';
}
return 0;
}
在Ideone上测试并且工作。
答案 2 :(得分:0)
您只检查一个对角线。要获得所需的模式,请更改if条件,如下所示... if((row == column)||(row ==(size-column-1)))