簡體   English   中英

如何在C中的數組中找到最大值的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM