Ⅰ 編寫簡單的單片機c語言程序 1、指定數組找最大值 2、排序
#include<stdio.h>
#defineNR10//數組元素個數
/*從主函數開始*/
intmain(intargc,char**argv)
{
intar[NR];
inti;
fprintf(stdout,"請輸入%d個整數: ",NR);
/*獲取並檢查用戶輸入*/
while(1)
{
/*循環獲取NR個數據*/
for(i=0;i<NR;i++)
{
if(fscanf(stdin,"%d",&ar[i])!=1)
{
fprintf(stdout,"輸入錯誤!請重新輸入: ");
while(getchar()!=' ');//丟棄多餘非法字元
break;//打破內層for循環
}
}
/*檢查是否獲取到NR個數據*/
if(i!=NR)
{
continue;
}
else
{
break;
}
}
/*查找最大值和最小值*/
intmax,min;
max=ar[0];//假定第一個數為最大值
min=ar[0];//同時假定也第一個數為最大值
/*從第二個數開始比較查找最值*/
for(i=1;i<NR;i++)
{
if(ar[i]>max)//最大值
{
max=ar[i];
}
if(ar[i]<min)//最小值,不能使用elseif,否則會跳過比較
{
min=ar[i];
}
}
fprintf(stdout,"最大值為:%d最小值為:%d ",max,min);
/*接下來:查找第二大值*/
intsecond;
/*先獲取前兩個數的第一大和第二大值*/
ar[0]>ar[1]?(max=ar[0],second=ar[1]):
(max=ar[1],second=ar[0]);
/*從第2個數開始比較查找*/
for(i=2;i<NR;i++)
{
if(ar[i]>max)//查找最大值:目的是為了比較第二大值
{
second=max;//先把最大值保存給第二大值
max=ar[i];
}
elseif(second<ar[i])//比最大值小的數再看看是否大於第二大值
{
second=ar[i];
}
}
fprintf(stdout,"第二大值為:%d ",second);
return0;
}
(1)單片機的編程如何求最大最小值擴展閱讀
一、c語言程序求數組內所有數的和:
1、通過索引的方式就可以訪問到數組內部的元素,索引是從0到數組長度-1。
2、數組點Lenth就是數組的長度。
二、c語言程序冒泡排序:
1、比較相鄰的兩個元素的大小,如果第一個比第二個大就互換一下。
2、然後每一對都做如上操作,如此一來最後一個元素肯定是最大的數了。
3、除了最後一個元素,重復以上步驟。然後倒數第二個就是次大的值了
4、一次按照這個邏輯直到沒有任何數字可以比較了。