Tag: min

获取输入的五个数字的最小值,最大值和最大值

我正在尝试使用C中的程序来获取5个输入数字,然后将它们存储在一个数组中。 得到5个数字后, 我必须得到输入的MINIMUN和MAXIMUM数的最小值,最大值和平均值,而不是全部的5个。 所以这是我制作的代码。 当我得到最大数量,它似乎工作正常。 但是当它到达最小值时,它仍然与最大值相同,因此我将获得不同的平均值。 #include #include int main() { int num[5]; int counter, min, max=0; float average, total; min=num; for(counter=1; countermax) { max = num[5]; } if (num[5]<min) { min = num[5]; } } total = min + max; average = total/2; printf("The maximum number is: %d\n", max); printf("The minimum number is: %d\n", […]

为什么INT64_MIN的定义不同? 为什么他们的行为不同?

我公司的stdint.h标题是: #define INT64_MIN -9223372036854775808LL 但在我项目的一些代码中,程序员写道: #undef INT64_MIN #define INT64_MIN (-9223372036854775807LL -1) 然后他在代码中使用此定义。 该项目编译时没有警告/错误。 当我试图删除他的定义并使用默认定义时,我得到了: error: integer constant is so large that it is unsigned 这两个定义似乎是等价的。 为什么一个编译好,另一个失败?

MINLOC是否适用于从索引0开始的数组? (Fortran 90/95)

使用C一段时间后,我回到Fortran并在我的代码中将数组从索引0分配到N: real(kind=dp), dimension(:), allocatable :: a allocate(a(0:50)) 我需要找到数组最小绝对值的索引,所以我使用MINLOC,并检查这个我将它与MINVAL进行比较: minloc(abs(a(:))) minval(abs(a)) MINLOC的结果是指数42但MINVAL的结果相当于41 。 以下是输出的相关部分: Index ia(i) 39 0.04667 40 0.02222 41 0.00222 !This was clearly the minimum value 42 0.02667 MINLOC = 42 MINVAL = 0.00222 我假设这与Fortran内部没有正确处理索引为0的数组有关,因为以这种方式声明数组不是标准的Fortran样式(但它仍然是允许的!)。 任何人都可以确认这一点或提供解决方法吗?