在C语言中搜索、排序和打印已排序的二维整数数组
我在打印二维整数数组中最大值的位置时遇到问题。i、 e.值为500的元素数组[33][2]最大,其中[33]表示第33周,[2]表示第2天。我想要printf(“最大值为500,在第X天找到”)以及printf(“最大周为:Y”)(对于第一周,它是一周内连续七天达到的最大总和) 另外,当我尝试对二维整数数组进行排序时,排序版本的打印未排序。。。 我对temp使用冒泡排序:在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
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数组(矩阵)进行排序很难,那么在排序之前,你应该考虑把它整平成一个普通数组吗?