亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

C語言

C語言數(shù)組元素的查詢

時間:2025-04-21 18:08:46 C語言 我要投稿
  • 相關(guān)推薦

C語言數(shù)組元素的查詢

  在實際開發(fā)中,經(jīng)常需要查詢數(shù)組中的元素。下面是小編為大家整理C語言數(shù)組元素的查詢的,歡迎參考~

  在實際開發(fā)中,經(jīng)常需要查詢數(shù)組中的元素。例如,學校為每位同學分配了一個唯一的編號,現(xiàn)在有一個數(shù)組,保存了實驗班所有同學的編號信息,如果有家長想知道他的孩子是否進入了實驗班,只要提供孩子的編號就可以,如果編號和數(shù)組中的某個元素相等,就進入了實驗班,否則就沒進入。

  不幸的是,C語言標準庫沒有提供與數(shù)組查詢相關(guān)的函數(shù),所以我們只能自己編寫代碼。

  對無序數(shù)組的查詢

  所謂無序數(shù)組,就是數(shù)組元素的排列沒有規(guī)律。無序數(shù)組元素查詢的思路也很簡單,就是用循環(huán)遍歷數(shù)組中的每個元素,把要查詢的值挨個比較一遍。請看下面的代碼:

  #include

  #include

  int main(){

  int nums[10] = {1, 10, 6, 296, 177, 23, 0, 100, 34, 999};

  int i, num, subscript = -1;

  printf("Please input an integer: ");

  scanf("%d", &num);

  for(i=0; i<10; i++){

  if(nums[i] == num){

  subscript = i;

  break;

  }

  }

  if(subscript<0){

  printf("%d isn't  in the array. ", num);

  }else{

  printf("%d is  in the array, and it's subscript is %d. ", num, subscript);

  }

  system("pause");

  return 0;

  }

  運行結(jié)果:

  Please input an integer: 100

  100 is in the array, and it's subscript is 7.

  或者

  Please input an integer: 28

  28 isn't in the array.

  這段代碼的作用是讓用戶輸入一個數(shù)字,判斷該數(shù)字是否在數(shù)組中,如果在,就打印出下標。

  第10~15行代碼是關(guān)鍵,它會遍歷數(shù)組中的每個元素,和用戶輸入的數(shù)字進行比較,如果相等就獲取它的下標并跳出循環(huán)。

  注意:數(shù)組下標的取值范圍是非負數(shù),當 subscript >= 0 時,該數(shù)字在數(shù)組中,當 subscript < 0 時,該數(shù)字不在數(shù)組中,所以在定義 subscript 變量時,必須將其初始化為一個負數(shù)。

  對有序數(shù)組的查詢

  查詢無序數(shù)組需要遍歷數(shù)組中的所有元素,而查詢有序數(shù)組只需要遍歷其中一部分元素。例如有一個長度為10的整型數(shù)組,它所包含的元素按照從小到大的順序(升序)排列,假設(shè)比較到第4個元素時發(fā)現(xiàn)它的值大于輸入的數(shù)字,那么剩下的5個元素就沒必要再比較了,肯定也大于輸入的數(shù)字,這樣就減少了循環(huán)的次數(shù),提高了執(zhí)行效率。

  請看下面的代碼:

  #include

  #include

  int main(){

  int nums[10] = {0, 1, 6, 10, 23, 34, 100, 177, 296, 999};

  int i, num, subscript = -1;

  printf("Please input an integer: ");

  scanf("%d", &num);

  for(i=0; i<10; i++){

  if(nums[i] >= num){

  if(nums[i] == num){

  subscript = i;

  }

  break;

  }

  }

  if(subscript<0){

  printf("%d isn't  in the array. ", num);

  }else{

  printf("%d is  in the array, and it's subscript is %d. ", num, subscript);

  }

  system("pause");

  return 0;

  }

  注意第11行代碼,只有當 nums[i] >= num 成立時才進行處理,否則繼續(xù)循環(huán)。nums[i] >= num 有兩重含義:

  如果 nums[i] == num,則num 在數(shù)組中,那么就需要給 subscript 賦值,記錄當前元素的下標;

  如果 nums[i] > num,則nums 不在數(shù)組中。

【C語言數(shù)組元素的查詢】相關(guān)文章:

C語言的數(shù)組與函數(shù)02-28

C語言數(shù)組教程02-28

什么是C語言數(shù)組04-19

C語言的元素02-16

C語言指針數(shù)組的概念07-19

C語言數(shù)組方法08-06

C語言數(shù)組是什么04-08

C語言數(shù)組與指針詳解08-15

C語言數(shù)組入門學習04-12