Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 生成1和0并在阵列中以菱形存储_C_Arrays_Shapes - Fatal编程技术网

C 生成1和0并在阵列中以菱形存储

C 生成1和0并在阵列中以菱形存储,c,arrays,shapes,C,Arrays,Shapes,我有一个任务,包括创建一段代码,生成并存储形状中的值: 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");

我有一个任务,包括创建一段代码,生成并存储形状中的值:

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");
    }
}
main(){
整数;
printf(“请给我一个从3到20的偶数\n”);
scanf(“%d”和编号);
如果(数字%2==0)
{
printf(“这不合适”);
返回0;
}
int array1[编号][编号];
整数lin,col,0=1,计数;
整数=(数字1)/2;
对于(lin=0;lin
#包括
#包括
内部主(空){
整数;
printf(“请给我一个3到19之间的奇数\n”);
scanf(“%d”和编号);
如果(数字%2==0 | |数字<3 | |数字>19){
printf(“这不合适”);
返回0;
}
int中心=数字/2;
整数数组[number][number];
对于(int i=0;icenter;
printf(“%d”,数组[i][j]);
}
认沽权(“”);
}
返回0;
}

与上一篇文章相同:是时候学习如何调试代码了。因为您似乎在托管系统上使用C99/C11,
main()
不是有效的C。现代C中的所有函数都必须返回void或值。在
main()的特定情况下
,您只能使用编译器指定的一种形式。通常是
int main(void)
。看看你要求一个偶数,当你得到一个偶数时就抱怨。下定决心。我的老师鼓励坏习惯,也许你可以听从他的建议,停止上课?这是OP要求的结果。
数组[i][j]=!(abs(i-center)+abs(j-center)@LPs或替换
@Matthieu是的,当然;)感谢bluepixy,这就是我对曼哈顿/出租车/任何距离的想法,但由于缺乏实践和糟糕的老师,无法将其转化为代码。。。
#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;
}