Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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-如何将数字移动到矩阵中的不同位置_C_Arrays_Function_Matrix - Fatal编程技术网

C-如何将数字移动到矩阵中的不同位置

C-如何将数字移动到矩阵中的不同位置,c,arrays,function,matrix,C,Arrays,Function,Matrix,这是我写的 int n=0,i=0,j=0,k=0,s=0,a=0,b=0; int blk[n][n]; printf("how many blocks?\n"); scanf ("%d", &n); printf("\n"); for(i=0;i<n;i++){ blk[i][j]=k; printf("%d: %d\t ",k, blk[i][j]); k++; printf("\n"); } int n=0,i=0,j=0,k=0,s

这是我写的

int n=0,i=0,j=0,k=0,s=0,a=0,b=0;
int blk[n][n];

printf("how many blocks?\n");
scanf ("%d", &n);
printf("\n");

for(i=0;i<n;i++){
    blk[i][j]=k;
    printf("%d: %d\t  ",k, blk[i][j]);
    k++;
    printf("\n");
}
int n=0,i=0,j=0,k=0,s=0,a=0,b=0;
国际大厦[n][n];
printf(“有多少块?\n”);
scanf(“%d”和“&n”);
printf(“\n”);

对于(i=0;i您应该在阅读
n
之后声明blocks变量,就像这样

你还忘了第二个for循环

int n=0,i=0,j=0,k=0,s=0,a=0,b=0;

printf("Enter the numember of blocks desired\n");
scanf ("%d", &n);
printf("\n");

int blocks[n][n];

for(i = 0; i < n; i++){
    for (j = 0; j < n; j++){
        blocks[i][j]=k;
        printf("%d: %d\t  ",k, blocks[i][j]);
        k++;
        printf("\n");
    }
}
int n=0,i=0,j=0,k=0,s=0,a=0,b=0;
printf(“输入所需块的nummember\n”);
scanf(“%d”和“&n”);
printf(“\n”);
整数块[n][n];
对于(i=0;i
您应该在阅读
n
之后声明blocks变量

你还忘了第二个for循环

int n=0,i=0,j=0,k=0,s=0,a=0,b=0;

printf("Enter the numember of blocks desired\n");
scanf ("%d", &n);
printf("\n");

int blocks[n][n];

for(i = 0; i < n; i++){
    for (j = 0; j < n; j++){
        blocks[i][j]=k;
        printf("%d: %d\t  ",k, blocks[i][j]);
        k++;
        printf("\n");
    }
}
int n=0,i=0,j=0,k=0,s=0,a=0,b=0;
printf(“输入所需块的nummember\n”);
scanf(“%d”和“&n”);
printf(“\n”);
整数块[n][n];
对于(i=0;i
似乎您正在描述一个NxN矩阵。对于N==10,并初始化为零,它在概念上可能如下所示:

然后你描述你想移动一个数字。例如,将一个值放入一个特定的位置,例如将55放入
矩阵[3][3]
。记住一个从零开始的索引系统,该矩阵现在看起来像:

为此可能实施的步骤:

步骤:
0)使用命令行值调用程序以获得矩阵的顺序。
1) 使用在命令行中输入的值创建nxn表。
2) 提示用户输入位置、放置值或退出。
3) 清除以前的内容。
4) 放置新值。
5) 转至步骤2

实施示例:

int main(int argc, char *argv[])
{
    int x = 0, y = 0;
    int value = 0;
    if(argc != 2) 
    {
        printf("Usage: %s <integer value for order>\n Exiting", argv[0]);
        getchar();
        return 0;
    }
    int order = atoi(argv[1]);

    int matrix[order][order];

    int exit = 'x';

    while(exit != 'q')
    {
        printf("Enter 3 space delimited digits with values from 0 to %d.\n\n", order-1);
        scanf(" %d %d %d", &x, &y, &value);
        memset(matrix, 0, x*y*sizeof(int));
        matrix[x][y] = value;
        for(int i=0;i<order;i++)
        {
            for(int j=0;j<order;j++)
            {
                if((i==x) && (j==y)) 
                {
                    printf("%3d", value);
                    if(j == order-1)printf("\n");
                }
                else
                {
                    printf("%3d", 0);
                    if(j == order-1)printf("\n");
                }
            }
        }
        printf("\nHit 'q' to quit, any other key to continue");
        exit = getchar();
    }


    return 0;
}
intmain(intargc,char*argv[])
{
int x=0,y=0;
int值=0;
如果(argc!=2)
{
printf(“用法:%s\n正在退出”,argv[0]);
getchar();
返回0;
}
int order=atoi(argv[1]);
整数矩阵[顺序][顺序];
int exit='x';
while(退出!=“q”)
{
printf(“输入3个空格分隔的数字,值从0到%d。\n\n”,顺序为-1);
scanf(“%d%d%d”,&x,&y,&value);
memset(矩阵,0,x*y*sizeof(int));
矩阵[x][y]=值;

对于(int i=0;i来说,您似乎在描述一个NxN矩阵。对于N==10,并初始化为零,它在概念上可能如下所示:

然后你描述你想移动一个数字。例如,将一个值放入一个特定的位置,例如将55放入
矩阵[3][3]
。记住一个从零开始的索引系统,该矩阵现在看起来像:

为此可能实施的步骤:

步骤:
0)使用命令行值调用程序以获得矩阵的顺序。
1) 使用在命令行中输入的值创建nxn表。
2) 提示用户输入位置、放置值或退出。
3) 清除以前的内容。
4) 放置新值。
5) 转至步骤2

实施示例:

int main(int argc, char *argv[])
{
    int x = 0, y = 0;
    int value = 0;
    if(argc != 2) 
    {
        printf("Usage: %s <integer value for order>\n Exiting", argv[0]);
        getchar();
        return 0;
    }
    int order = atoi(argv[1]);

    int matrix[order][order];

    int exit = 'x';

    while(exit != 'q')
    {
        printf("Enter 3 space delimited digits with values from 0 to %d.\n\n", order-1);
        scanf(" %d %d %d", &x, &y, &value);
        memset(matrix, 0, x*y*sizeof(int));
        matrix[x][y] = value;
        for(int i=0;i<order;i++)
        {
            for(int j=0;j<order;j++)
            {
                if((i==x) && (j==y)) 
                {
                    printf("%3d", value);
                    if(j == order-1)printf("\n");
                }
                else
                {
                    printf("%3d", 0);
                    if(j == order-1)printf("\n");
                }
            }
        }
        printf("\nHit 'q' to quit, any other key to continue");
        exit = getchar();
    }


    return 0;
}
intmain(intargc,char*argv[])
{
int x=0,y=0;
int值=0;
如果(argc!=2)
{
printf(“用法:%s\n正在退出”,argv[0]);
getchar();
返回0;
}
int order=atoi(argv[1]);
整数矩阵[顺序][顺序];
int exit='x';
while(退出!=“q”)
{
printf(“输入3个空格分隔的数字,值从0到%d。\n\n”,顺序为-1);
scanf(“%d%d%d”,&x,&y,&value);
memset(矩阵,0,x*y*sizeof(int));
矩阵[x][y]=值;

对于(int i=0;它看起来不像nxn矩阵。
int blocks[n][n];
n
在这里是零。空格应该是空的,所以你可以添加数字,例如,你可以将下面所有的数字放在第一个前面,如果有意义,就完成整行。
blocks[1][1]=9;
。但是在
块[9][0]
处放置什么来将其标记为空呢?变量名应该指示
内容
用法
(或者更好,两者都可以)名称,例如:
n,i,j,k,s,a,b
即使在当前上下文中也是没有意义的。这看起来不像nxn矩阵。
int blocks[n][n];
n
在这里是零。空格应该是空的,这样你就可以添加数字。例如,你可以把下面所有的数字放在第一个前面,如果这意味着
块[1][1]=9;
那么你在
块[9][0]上放什么呢
是否将其标记为空?变量名称应指示
内容
用法
(或更好,两者都指示)像:
n,i,j,k,s,a,b这样的名称是没有意义的,即使在当前上下文中也是如此。@gsamaras据我所知,问题是作者没有得到预期的输出。这是一个有助于正确输出的解决方案。在重读之后,我认为OP不需要嵌套循环。他们只需要填写每行的第一列。我可以d错了。问题不清楚。@Johnnymapp同意,问题不清楚。a和b命令是什么?移动的规范是什么矩阵中的东西?给定代码片段,我相信这个解决方案在某种程度上帮助作者更好地理解他们的想法want@gsamaras据我所知,问题是作者没有得到预期的输出。这是一个有助于正确输出的解决方案。重新阅读后,我认为OP不需要嵌套循环。它们是I don’我不想填写每行的第一列。我可能错了。问题不清楚。@Johnnymapp同意,问题不清楚。a和b命令是什么?矩阵中“移动”东西的规范是什么?给定代码片段,我相信这个解决方案在一定程度上帮助作者更好地理解他们想要什么