久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5115|回復: 16
打印 上一主題 下一主題
收起左側

關于C語言數據比較,找出最大數和最小數的算法

  [復制鏈接]
跳轉到指定樓層
樓主
ID:510170 發表于 2021-4-19 14:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我想從eeprom中取出80個數,然后進行比較,找出最大數和最小數,應該怎么寫程序呢?謝謝各位大神了。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94489 發表于 2021-4-19 15:38 | 只看該作者
1.先求和,算平均值
2.循環80個數,計算與平均值的差
3,.比較差大小,得出最大最小值

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:47286 發表于 2021-4-19 15:40 | 只看該作者
本帖最后由 dzbj 于 2021-4-19 15:52 編輯

最笨的算法

uchar a=0;
uchar b=255;

for(x=0;x<80;x++)
{
if(a<eeprom[x])//求最大
{
a=eeprom[x];
}
if(b>eeprom[x])
{
b=eeprom[x];//求最小
}
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:332214 發表于 2021-4-19 17:20 | 只看該作者
偽代碼
回復

使用道具 舉報

5#
ID:332214 發表于 2021-4-19 17:41 | 只看該作者
偽代碼:
  1. //從 eeprom 讀取數據
  2. char* Get_eeprom_data(void)
  3. {
  4.      .......
  5.      return data
  6. }
  7. //獲取最大 最小 值
  8. void Get_max_or_min_mum (void)
  9. {
  10.      char max=0,min=127,i=0;
  11.      char *datanum=Get_eeprom_data();
  12.      for(i=0;i < 80;i++)
  13.      {
  14.           if(datanum[i] > max)
  15.           {
  16.                max = datanum[i];
  17.           }
  18.           else if(datanum[i] < min)
  19.           {
  20.                 min = datanum[i];
  21.           }
  22.           else
  23.           {
  24.               continue;
  25.            }
  26.      }
  27. // max 最大值  min 最小值
  28. }
復制代碼
回復

使用道具 舉報

6#
ID:451718 發表于 2021-4-19 18:01 | 只看該作者
有個非常經典的算法,冒泡比較法了解下

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:908654 發表于 2021-4-19 21:13 | 只看該作者
冒泡算法比較好用。從eeprom中依次取數字,然后再寄存器中保存當前最大值。遍歷一整遍后即可。
回復

使用道具 舉報

8#
ID:844772 發表于 2021-4-19 23:28 | 只看該作者
冒泡法是排序用的,這里只要簡單遍歷而已。
回復

使用道具 舉報

9#
ID:889094 發表于 2021-4-19 23:39 | 只看該作者
很多人都學過,如果沒學過就簡單走一遍,先變量shud,shux,shudi,shuxi標記大數,小數,大數位置,小數位置,走一遍,連走邊比較,如果比大數大,大數賦值,大數位置指過去,如果比小數小,小數賦值,小數位置指過去,繼續下一個,一遍下來全搞定,這種一遍的事沒有什么太簡單或者太高精尖的算法

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:592807 發表于 2021-4-20 08:44 | 只看該作者
dzbj 發表于 2021-4-19 15:40
最笨的算法

uchar a=0;

所有的數都在10-20之間,你這算法會怎么樣。
回復

使用道具 舉報

11#
ID:47286 發表于 2021-4-20 09:50 來自觸屏版 | 只看該作者
黃youhui 發表于 2021-4-20 08:44
所有的數都在10-20之間,你這算法會怎么樣。

沒想那么多情況 人家不是沒說范圍么 先按最簡單的來唄
回復

使用道具 舉報

12#
ID:908839 發表于 2021-4-20 10:07 | 只看該作者
當然可以使用冒泡排序,但只是為了找最值的話,未免有點殺雞用牛刀了,代碼實現思路如下:
回復

使用道具 舉報

13#
ID:510170 發表于 2021-4-20 11:10 | 只看該作者
謝謝各位回答,我去了解下冒泡算法。
回復

使用道具 舉報

14#
ID:518902 發表于 2021-4-20 15:33 | 只看該作者
你好! 我有一個解決辦法,既然你只是要找出最大最小,只需要遍歷一遍就行,不需要冒泡排序,冒泡排序還是挺占用資源的.
首先定義2個變量 ,max,min,然后分別裝入數組里的第一個元素,隨后分別遍歷數組, 前者: 如果就比他大的 就把數值換成那個大的,后者和前者一樣,只不過是比誰小.
這樣只需要遍歷2次數組即可,也可以一次遍歷完,都可以的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

15#
ID:518902 發表于 2021-4-20 15:34 | 只看該作者
也可以在一次遍歷中同時判斷,都可以的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

16#
ID:723547 發表于 2021-4-23 14:04 | 只看該作者
定義·兩個變量,最大和最小值,然后把第一個數付給他,然后循環比較
回復

使用道具 舉報

17#
ID:824490 發表于 2021-4-24 09:35 | 只看該作者
直接冒泡就行了。又不用排序,簡單:

定義MAX、MIN

max=arr[0];
min=arr[0];

從數組1到數組80

for (i=1;i<80;i++)
{
  if arr[i]>max;max=arr[i];//大于最大,則更新最大值
  if arr[i]<min;min=arr[i];//小于最小,則更新最小值
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天综合91| 精品国产久 | 久在线 | 色综合国产| 欧美久久视频 | 午夜精品一区二区三区免费视频 | 亚洲在线 | 狠狠视频| 国产美女高潮 | 97精品久久 | 欧美日韩在线视频一区二区 | 91在线视频免费观看 | 天堂色综合 | 91视频大全 | 亚洲高清久久 | 日日夜夜草 | av中文字幕在线 | 亚洲视频三 | 亚洲综合精品 | 999热精品 | 蜜桃毛片| 精品一区二区在线观看 | 在线视频日韩精品 | 国产免费自拍 | 久久久久久久夜 | 日韩久久久久 | 一级黄色毛片a | 亚洲精品一区在线观看 | 天天操夜夜艹 | 久久精品99久久 | 精品国产欧美 | 黄视频在线网站 | 亚洲永久 | 色婷婷婷婷色 | 91一区二区三区 | 国产日产欧产精品精品推荐蛮挑 | 日本精品久久久久久久 | 人人做人人澡人人爽欧美 | 久草在线在线精品观看 | 日日骚网 | 成人小视频在线观看 |