[英]How to find the position of maximum in an array in C
我有一个包含 16 个整数值的数组,其中每个值都是 32 位,如图所示。 我可以找到数组的最大值,如下所示。
#include <stdio.h>
#include <conio.h>
// main program
int main(void){
int i, max;
int array[16];
array[0]=0x1;
array[1]=0x6;
array[2]=0x8;
array[3]=0xC;
array[4]=0x7;
array[5]=0x9;
array[6]=0xB;
array[7]=0x0;
array[8]=0x3;
array[9]=0x6;
array[10]=0x7;
array[11]=0x6;
array[12]=0x15;
array[13]=0x1;
array[14]=0x9;
array[15]=0x3;
// calculate max
max=array[0];
for(int i=1;i<16;i++)
{
if(max<array[i])
{
max=array[i];
}
}
printf("The max is %lx ",max);
getch();
return 0;
我想找到数组中最大值的位置和最大值中最高有效二进制1的位置。 可以看出,数组中位置 13 处的最大值为 0x15,条目中最高有效二进制 1 的位置为 5th 。 这如何在 C 中实现?
把它放在 printf 语句之后。 并在顶部定义 j。
for (j=0; j<16; j++) {
if ((max=max>>1) == 0) break;
}
printf("the max bit is %lx ", j);
这显示了传统符号中的位位置,其中第 5 位是第 4 位。添加一个“+1”以显示为第 5 位。
显示出现最大值的位置:
在 'max=array[i]' 行下方,添加以下行(在使用其他变量定义 maxpos 之后)
maxpos = i;
并将 printf 更改为
printf("The max is 0x%02x at position 0x%02x ", max, maxpos);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.