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

在C语言中搜索、排序和打印已排序的二维整数数组

在C语言中搜索、排序和打印已排序的二维整数数组,c,sorting,search,multidimensional-array,max,C,Sorting,Search,Multidimensional Array,Max,我在打印二维整数数组中最大值的位置时遇到问题。i、 e.值为500的元素数组[33][2]最大,其中[33]表示第33周,[2]表示第2天。我想要printf(“最大值为500,在第X天找到”)以及printf(“最大周为:Y”)(对于第一周,它是一周内连续七天达到的最大总和) 另外,当我尝试对二维整数数组进行排序时,排序版本的打印未排序。。。 我对temp使用冒泡排序: for (i=0; i<100;i++){ for(j=0;j<7;j++){ fscanf(filetorea

我在打印二维整数数组中最大值的位置时遇到问题。i、 e.值为500的元素数组[33][2]最大,其中[33]表示第33周,[2]表示第2天。我想要printf(“最大值为500,在第X天找到”)以及printf(“最大周为:Y”)(对于第一周,它是一周内连续七天达到的最大总和)

另外,当我尝试对二维整数数组进行排序时,排序版本的打印未排序。。。 我对temp使用冒泡排序:

for (i=0; i<100;i++){
for(j=0;j<7;j++){
fscanf(filetoreadfrom,"%d\n",&array[i][j]);

    if(array[i][j] < array[i][j+1]){

    temp=array[i][j];
    array[i][j]=array[i][j+1];
    array[i][j+1]=temp;
    }}}

for(i=0;i在读取所有数据之前,您正在对数据进行排序。首先读取数据:

for (i=0; i<100;i++){
  for(j=0;j<7;j++){
    fscanf(filetoreadfrom,"%d\n",&array[i][j]);
  }
 }

for(i=0;i在读取所有数据之前,您正在对数据进行排序。首先读取数据:

for (i=0; i<100;i++){
  for(j=0;j<7;j++){
    fscanf(filetoreadfrom,"%d\n",&array[i][j]);
  }
 }

对于(i=0;i在冒泡排序中,您必须在整个数组上循环,直到不必交换特定循环中的任何元素为止。您只需循环一次,除非数组一开始几乎已排序,否则将无法工作


另外,在
[i][j]
的循环完成之前,您不会读取元素
[i][j+1]
,因此您要将
[i][j]
[i][j+1]中存储的垃圾进行比较
。在对元素进行排序之前读入所有元素!

在冒泡排序中,您必须在整个数组上循环,直到您不必交换特定循环上的任何元素为止。您只循环一次,除非数组一开始就几乎被排序,否则将无法工作


另外,在
[i][j]
的循环完成之前,您不会读入元素
[i][j+1]
,因此您将
[i][j]
[i][j+1]
中存储的垃圾进行比较。在排序之前读入所有元素!

只是一些随机想法: 索引始终以0开始。 不需要排序来查找最大的数字。 你有没有考虑过,到几天或几周可能有相同的价值? 如果对数组进行排序,您希望如何知道数据从何处开始


祝你好运!

只是一些随意的想法: 索引始终以0开始。 不需要排序来查找最大的数字。 你有没有考虑过,到几天或几周可能有相同的价值? 如果对数组进行排序,您希望如何知道数据从何处开始



祝你好运!

如果我把j=0放在嵌套for的末尾,那会解决[7]问题吗问题?不,您需要切换到第二天,或者根据您想要执行的操作循环直到j==5。对于第一种情况,创建一个名为get_next_day的函数,并从该函数返回i和j值。我尝试创建get_next_day函数,但没有任何效果,您如何正确构造它?if子句如何?if(大多数天)if子句怎么样?if(一周的最后一天)next_j=0;next_i+=1;。在尝试编程计算机之前,试着在你的头脑中这样做。一旦你确切知道如何做,你就可以开始指导计算机。C编译器永远不会自己解决类似的问题。如果我将j=0放在嵌套for的末尾,这会解决[7]问题吗问题?不,您需要切换到第二天,或者根据您想要执行的操作循环直到j==5。对于第一种情况,创建一个名为get_next_day的函数,并从该函数返回i和j值。我尝试创建get_next_day函数,但没有任何效果,您如何正确构造它?if子句如何?if(大多数天)如果条款怎么样?如果(一周的最后一天)next_j=0;next_i+=1;。在尝试编写计算机程序之前,请先在头脑中进行此操作。一旦您确切知道如何进行此操作,您就可以开始指示计算机。C编译器将永远无法自行解决类似的问题。我是否应该改用do while循环?您可能希望将整个内容包含在
do{}while中(在此迭代中交换了一些内容)
loop。你可能想找到一些现有的C代码用于冒泡排序,只是为了比较,因为所有冒泡排序基本上都是相同的。顺便问一下,你真的需要排序,还是只查找最大值?排序与搜索是分开使用的,它们在应用程序中不一起使用。我应该使用do while循环来代替吗?你可能想将整个事情在
do{}while中进行(在这个迭代中交换了一些东西)
loop。你可能想找到一些现有的C代码进行冒泡排序,只是为了比较,因为所有的冒泡排序基本上是相同的。顺便问一下,你真的需要排序,还是只查找最大值?排序与搜索是分开使用的,它们在应用程序库中不一起使用,排序和搜索是在单独的实例中完成的ces。搜索的是最大值,然后打印包含该值的日期,同时打印值总和最大的一周。稍后将进行排序,以降序/升序值对数据进行排序。如果您发现排序的是2D数组(矩阵)在排序之前,你应该考虑把它变为普通数组吗?谢谢,排序和搜索是在单独的实例中完成的。搜索是最大值,然后打印包含该值的一天,同时打印值最大的一周。排序是在后面进行排序的。如果你发现对一个2D数组(矩阵)进行排序很难,那么在排序之前,你应该考虑把它整平成一个普通数组吗?