Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.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_Multidimensional Array - Fatal编程技术网

C语言中存储用户输入的二维数组

C语言中存储用户输入的二维数组,c,arrays,multidimensional-array,C,Arrays,Multidimensional Array,这里是C级新手。谢谢你事先的帮助 我需要编写具有以下属性的代码: 要求用户在其二维数组中输入所需的行数和列数 创建一个2-D数组,其中包含那么多用于存储整数的行和列 用1到1000之间的随机数填充数组 输出数组中的最大数字 这是我现在可以去的地方: #include <stdio.h> int main(){ int rows; int columns; scanf("%d", &rows); scanf("%d", &columns); } #包括

这里是C级新手。谢谢你事先的帮助

我需要编写具有以下属性的代码:

  • 要求用户在其二维数组中输入所需的行数和列数
  • 创建一个2-D数组,其中包含那么多用于存储整数的行和列
  • 用1到1000之间的随机数填充数组
  • 输出数组中的最大数字
  • 这是我现在可以去的地方:

    #include <stdio.h>
    
    int main(){
    
     int rows;
     int columns;
    
     scanf("%d", &rows);
     scanf("%d", &columns);
     }
    
    #包括
    int main(){
    int行;
    int列;
    scanf(“%d”,行和行);
    scanf(“%d”列和列);
    }
    
    我该怎么办? 对不起,这个问题很开放,我被卡住了,不知道该怎么办。指南将是完美的。谢谢:)

    编辑:

    感谢您的指导,以下是我解决问题的方法: 解决方案:

    #include <stdio.h>
    #include <time.h>
    
    int main () {
        //Declare variables
        int a,b,k,l,big,z[100][100];
        //Ask user input
        printf("ENTER ROWS & COLUMNS\n");
        scanf("%d\n%d", &a, &b);
        //Randomize array values
        srand(time(NULL));
        big = 1;
        for (k=0;k<a;k++){
            for(l=0;l<b;l++){
                z[k][l]=rand()%1000 + 1;
                if(z[k][l]>big) big=z[k][l];
                printf("%d\t", z[k][l]);
            }
            printf("\n");
        }
        //Print biggest number
        printf("\nBIGGEST NUMBER IN THE ARRAY: %d", big);
        return 0;
    }
    
    #包括
    #包括
    int main(){
    //声明变量
    int a,b,k,l,big,z[100][100];
    //询问用户输入
    printf(“输入行和列\n”);
    scanf(“%d\n%d”、&a和&b);
    //随机化数组值
    srand(时间(空));
    大=1;
    对于(k=0;k
    指南将是完美的

    好的…我们走吧

  • 要求用户在其二维数组中输入所需的行数和列数
  • 使用
    scanf
    或更好的
    fgets
    ,然后使用
    sscanf

  • 创建一个2-D数组,其中包含那么多用于存储整数的行和列
  • 使用
    malloc
    (在网上搜索“如何正确malloc二维数组”或只需查看)

  • 用1到1000之间的随机数填充数组
  • 使用
    srand
    rand
    %
    运算符

  • 输出数组中的最大数字

  • 迭代数组的所有元素并与正在运行的最大值进行比较。

    C不支持本机2D数组,您需要分配一个数组数组。您事先不知道数组的大小,因此需要使用
    malloc
    动态分配数组内存

    对于生成随机数,您可以使用
    rand
    ,但您需要先为伪随机整数序列设置种子,然后使用
    srand
    获取(可能)每次执行时使用不同的数字,或者您可以使用一个函数使用
    rand\u r
    来执行这两个操作。请注意,rand生成一个介于
    0
    rand\u MAX
    之间的随机数,您需要使用模运算符
    %
    的技巧来生成特定范围[min,MAX]内的随机数

    min+(rand()%(max-min+1))
    
    您可以使用两个循环迭代数组,以获得最大数量

    要了解如何使用这些功能,您可以阅读手册页:

    作为补充说明,您并不需要2D数组来获得最大数量,您可以通过分配任何额外内存直接计算它


    您的解决方案可以工作,但仅限于100列和100行。例如,如果用户输入更高的数字,您的代码将大部分崩溃。一种解决方案是验证输入并拒绝超过100的数字,如果您不想处理动态内存分配,但在现实世界中这是非常罕见的,并且动态内存分配是一个非常困难的问题必要的


    你不应该用一个字符的名称来命名变量,特别是如果变量的寿命很长的话。最好使用一个好的描述性名称,如
    columnsumber

    很抱歉,这样不起作用。我们可以帮你解决代码中的问题,但我们不会为你编写代码。所以你需要更具体一些……你被困在哪里了?你知道那个程序吗开始于:
    intmain(void){….}
    那么,您无法解决的问题是什么?获取用户输入?创建二维数组?填充数组?…首先尝试实现#1,并使用
    printf将其打印回标准输出,以查看输入是否正确读取。然后尝试实现#2和#3,并打印二维数组的内容,以查看其是否有效。然后尝试实现#4.如果您对这些步骤中的任何一个有特定问题,欢迎您提出该特定问题。以这种方式使用
    scanf
    是不安全的。您可能需要阅读此内容以了解更多信息:
    scanf(“%d”、&rows);
    =>If(scanf(“%d”、&rows)!=1)退出(1)谢谢你的指导。你现在可以解决问题,但没有使用malloc。@Xavier99:一般来说,如果你认为一个答案解决了你的问题,那么请接受它。尽管你只能接受一个答案。但是如果你有15个信誉点,那么你可以投票给所有你认为有用的答案。如果你认为没有答案解决了你的问题,你就可以接受它也可以写下自己的答案并接受。