国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞頭條 >> C語言數(shù)組元素的查詢
新聞資訊
NEWS INFORMATION

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

發(fā)布時間:2019-05-22

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

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

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

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

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(){
  4. int nums[10] = {1, 10, 6, 296, 177, 23, 0, 100, 34, 999};
  5. int i, num, subscript = -1;
  6. printf("Please input an integer: ");
  7. scanf("%d", &num);
  8. for(i=0; i<10; i++){
  9. if(nums[i] == num){
  10. subscript = i;
  11. break;
  12. }
  13. }
  14. if(subscript<0){
  15. printf("%d isn't in the array.\n", num);
  16. }else{
  17. printf("%d is in the array, and it's subscript is %d.\n", num, subscript);
  18. }
  19. system("pause");
  20. return 0;
  21. }

運行結(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ù)組中,如果在,就打印出下標(biāo)。

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

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

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

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

請看下面的代碼:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(){
  4. int nums[10] = {0, 1, 6, 10, 23, 34, 100, 177, 296, 999};
  5. int i, num, subscript = -1;
  6. printf("Please input an integer: ");
  7. scanf("%d", &num);
  8. for(i=0; i<10; i++){
  9. if(nums[i] >= num){
  10. if(nums[i] == num){
  11. subscript = i;
  12. }
  13. break;
  14. }
  15. }
  16. if(subscript<0){
  17. printf("%d isn't in the array.\n", num);
  18. }else{
  19. printf("%d is in the array, and it's subscript is %d.\n", num, subscript);
  20. }
  21. system("pause");
  22. return 0;
  23. }

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

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


無論哪種情況,都沒有必要再繼續(xù)循環(huán)下去了,所以一旦滿足 nums[i] >= num,就應(yīng)該使用 break 跳出循環(huán)。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

日本加勒比系列在线播放| 丁香七月啪啪激情综合| 麻豆亚州无矿码专区视频| 爱草草在线观看免费视频| 欧美日韩亚洲国产综合网 | 日本99精品在线观看| 国产麻豆成人精品区在线观看| 韩日黄片在线免费观看| 夫妻激情视频一区二区三区| 制服丝袜美腿美女一区二区| 日韩熟妇人妻一区二区三区 | 成年人视频日本大香蕉久久| 亚洲一区二区福利在线| 嫩呦国产一区二区三区av| 午夜直播免费福利平台| 欧美日韩国产另类一区二区| 激情偷拍一区二区三区视频| 欧美同性视频免费观看| 亚洲欧洲一区二区中文字幕| 欧美日韩亚洲国产av| 国产精品白丝一区二区| 国产精品欧美在线观看| 欧美人妻盗摄日韩偷拍| 国产级别精品一区二区视频| 亚洲中文字幕三区四区| 色一情一伦一区二区三| 日韩特级黄片免费在线观看| 日本免费一本一二区三区| 婷婷色香五月综合激激情| 欧美日韩国产福利在线观看| 国产在线一区二区三区不卡| 中文字幕日韩欧美亚洲午夜| 91插插插外国一区二区婷婷| 精品国产品国语在线不卡| 男女午夜视频在线观看免费| 日韩国产中文在线视频| 超薄丝袜足一区二区三区| 日本道播放一区二区三区| 丝袜视频日本成人午夜视频| 亚洲专区一区中文字幕| 69精品一区二区蜜桃视频|