生成1和0和在菱形存储阵列内

我有包括创建了一块,在形状产生和存储值的代码的分配:生成1和0和在菱形存储阵列内

1 1 0 1 1 

1 0 0 0 1

0 0 0 0 0

1 0 0 0 1

1 1 0 1 1

我可以仅使用阵列和循环。没有必要打印阵列,但我打印它只是为了检查我是否做得正确。在我的脑海中,这应该工作,但它会返回垃圾。该阵列是二维的,必须具有相等的奇数尺寸。对于任何类型的编程,我都有不到一周的经验。以前后

main(){ 

int number;

printf("PLEASE GIVE ME A EVEN NUMBER FROM 3 TO 20\n");

scanf("%d", &number);

if(number%2==0)

{

printf("THIS WON'T FIT\n");

return 0;

}

int array1[number][number];

int lin, col, zero=1, count;

int ones=(number-1)/2;

for(lin=0;lin<number;lin++)

{

for(col=0;col<number;col++)

{

for(count=1; count<=ones;count++)

{

array1[lin][col]=1;

for(count=1;count<=zero;count++)

{

array1[lin][col]=0;

}

}

}

--ones;

zero+=2;

}

for(lin=0;lin<number;lin++)

{

for(col=0;col<number;col++)

printf("%d", array1[lin][col]);

printf("\n");

}

}

回答:

#include <stdio.h> 

#include <stdlib.h>

int main(void){

int number;

printf("PLEASE GIVE ME A ODD NUMBER FROM 3 TO 19\n");

scanf("%d", &number);

if(number%2==0 || number < 3 || number > 19){

printf("THIS WON'T FIT\n");

return 0;

}

int center = number/2;

int array[number][number];

for(int i = 0; i < number; ++i){

for(int j = 0; j < number; ++j){

array[i][j] = abs(i-center)+abs(j-center) > center;

printf("%d ", array[i][j]);

}

puts("");

}

return 0;

}

以上是 生成1和0和在菱形存储阵列内 的全部内容, 来源链接: utcz.com/qa/262207.html

回到顶部