首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建具有随机整数值的平方矩阵

创建具有随机整数值的平方矩阵
EN

Stack Overflow用户
提问于 2022-02-26 03:56:18
回答 2查看 113关注 0票数 -1

我试图用随机生成的元素创建一个随机方阵(基于用户的输入)。这是我的密码。

代码语言:javascript
运行
复制
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

int generate_random (int lower, int upper);

int main ()
{
    int upper,lower,i,j,M,N,matrix[M][N];
    printf("Enter the number of rows and columns: \n");
    scanf("%d %d",&M,&N);
    printf("Enter the range of random numbers:\nUpper: ");
    scanf("%d",&upper);
    printf("Lower: ");
    scanf("%d",&lower);
    srand(time(NULL));
    for (i=0;i<M;i++)
    {
        for (j=0;j<N;j++)
        {
            matrix[i][j] = generate_random(lower,upper);
            printf("%d ",matrix[i][j]);
        }
        printf("\n");
    }
}

int generate_random (int lower, int upper)
{
    int rand_num;
    rand_num = (rand()%(upper-lower+1))+1;
    return rand_num;
}

然而,我得到了一个非常奇怪的输出,并且完全不明白为什么?在这里输入图像描述

在这里输入图像描述

请帮我处理这个。我对C不熟悉,现在真的很困惑。

EN

Stack Overflow用户

发布于 2022-02-26 04:04:45

问题就在申报部分

代码语言:javascript
运行
复制
int upper,lower,i,j,M,N,matrix[M][N];

MN未定义将给出segmentation fault。首先输入M & N的值,然后创建矩阵

代码语言:javascript
运行
复制
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

int generate_random (int lower, int upper);

int main (){
    int M,N;
    printf("Enter the number of rows and columns: \n");
    scanf("%d %d",&M,&N);
    int upper,lower,i,j,matrix[M][N];
    printf("Enter the range of random numbers:\nUpper: ");
    scanf("%d",&upper);
    printf("Lower: ");
    scanf("%d",&lower);
    srand(time(NULL));
    for (i=0;i<M;i++)
    {
        for (j=0;j<N;j++)
        {
            matrix[i][j] = generate_random(lower,upper);
            printf("%d ",matrix[i][j]);
        }
        printf("\n");
    }
}

int generate_random (int lower, int upper)
{
    int rand_num;
    rand_num = (rand()%(upper-lower+1))+1;
    return rand_num;
}

输出:

代码语言:javascript
运行
复制
$ gcc randgen.c && ./a.out
Enter the number of rows and columns: 
5
5
Enter the range of random numbers:
Upper: 10
Lower: 3
8 8 5 7 2 
6 7 5 4 1 
5 1 7 1 7 
3 6 4 7 5 
3 1 8 6 4 
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71273966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档