国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

對于c/c++中的數組排序及計算平均值和得到最大最小值的思考

2019-11-17 05:12:40
字體:
來源:轉載
供稿:網友
作者:網易學院程序系教授管寧最近在幫助其它人的學習中發現了許多問題就數組和局部變量和全居變量的兩道例題進行刨析和思考! 排序操作
#include

voidsort(array,n)
intarray[];
intn;
{
inti,j,k,t;
for(i=0;i){
k=i;[/LIGHT] /* 把i記錄下來,以便進行調換操作 */
for(j=i+1;)j{
if(array[j]){
k=j; /* 將k的值定義為j循環的最小元素的(下標),以便進行調換操作 */
}
t=array[k]; /* 將t的值定義為j循環的最小值元素的值 */
array[k]=array[i]; /* 把j循環內的(也就是array[j])的值,調換為此次外部i循環元素的值 */
array[i]=t; /* 將外部i循環的當前元素的值替換為前面以t為臨時存儲的(也就是array[j])的值 */
}
}
}
main()
{
inta[10],i; /* 定義a[10]為一個數組,用于輸入10個不同的數字;定義用于循環的便量i; */
for(i=0;i<10;i++)
{
scanf("%d",&a[i]); /* 利用這10次循環給每個數組元素盡心賦值操作從a[0]到a[9] */
}
sort(a,10);/* 把數組a的各數組元素地址和數組數量傳遞給自定義排序涵數的形式參數 */
printf("the sorted array:/n");
for(i=0;i<10;i++)
{
printf("%d",a[i]); /*利用10次循環把排序后的數組元素打印在屏幕上*/
}
printf("/n");

}/* 此篇代碼練習序號注重的是用數組名作涵數實際參數的時候,不是把數組的值傳遞給形式參數,
而是把實際參數數組的起始地址傳遞給形式參數數組,這樣兩個數組就共同占用一段內存單元,而
不需要建立兩個不同的數組浪費內存空間 */

求平均值和找最大最小值 #include

floatmax; /* 定義全局變量max用于存儲最大的數 */
floatmin; /* 定義全居變量min用于存儲最小的數 */



main()
{
floatcount_avg(); /* 聲明自定義涵數的數據類型 */
floatscore[10]; /* 定義一個數組用于存儲輸入數字 */
floatscore_avg;
inti; /* 定義用于循環的變量i */
for(i=0;i<10;i++) /* 利用一個為10次的循環為score[0]-score[9]的數組元素輸入值*/
{
scanf("%f",&score); /* 格式化輸入 */
}
score_avg =count_avg (score,10); /* 調用count_avg涵數計算平均值,在實際參數中帶如數組score的地址和數組元素個數 */
printf("avg=%6.2f max=%6.2f min=%6.2f",score_avg,max,min); /* 將平均值,最大值,最小值打印在屏幕上 */
}

floatcount_avg(array,score_num) /* 定義count_avg這個自定義涵數的數據類型為浮點形 */
floatarray[]; /* 定義形式參數array[]這個數組為浮點形 */
intscore_num; /* 定義形式參數score_num為正形,用于得到實際參數也就是數組的元素個數 */
{
inti; /* 定義用于循環的變量i */
floatsum =array[0]; /* 預先設置總數初始值為array[0]以便于后面對比大小的操作 */
floatavg; /* 定義avg也就是平局值存儲變量為浮點形 */

max=array[0]; /* 預先設置最大值初始值為array[0]以便于后面對比大的操作 */
min=array[0]; /* 預先設置最小值初始值為array[0]以便于后面對比小的操作 */

for(i=1;i<10 ;i++ ) /* 利用一個為9次的循環逐個和array[0]進行對比找出最大值和最小值 */
{
if(array>max) /* 利用已經存儲的最大值和當前循環下的array進行對比(找大計算) */
{
max=array; /* 符合條件的存儲為最大值.注重:(這里利用循環判定反復的對比操作逐步替換最大值最后得到最大的數)*/
}
elseif(array<min) /* 利用已經存儲的最小值和當前循環下的array進行對比(找小計算) */
{
min=array; /* 符合條件的存儲為最小值.注重:(這里利用循環判定反復的對比操作逐步替換最小值最后得到最大的數)*/
}
sum += array; /* 計算個數組元素的總和 */
}

avg =sum / score_num; /* 計算出最后的平均值 */
return(avg); /* 返回平均值 */
}


/* 此例需要注重的是利用全局變量可以減少實際參數和形式參數的個數,從而減少內存空間和傳遞值數據是的時間開銷.此外c語言也規定外部
數組可以富裕初值,而局部數組是不能賦予初值的,建議不在必要的時候不要使用全局變量,因為1:全局變量在程序的全部執行過程中都占用存儲
單元,而不是僅在需要的時候開辟單元.2:它使涵數的通用性降低了,因為涵數在執行過程中要依靠于其他所在的外部變量.3:全局變量使用過多,
會降低程序的清楚性,難以清楚判定每個瞬時各個外部變量的值.在各個涵數執行的時候都會改變外部變量的值,導致程序出錯!
4.假如外部變量不
在文件開頭定義,那么它只限與定義點到文件終了這段才起作用
*/
在學習中應該多注重細節這些東西在
java中也是類似的,希望對大家有所啟發!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祁东县| 高唐县| 宁武县| 固安县| 河南省| 东平县| 兴隆县| 定结县| 莱州市| 连城县| 天水市| 镇巴县| 朝阳区| 耿马| 赞皇县| 宜州市| 青龙| 元阳县| 凤冈县| 汝南县| 双鸭山市| 渝中区| 乐平市| 安平县| 梁山县| 云南省| 义乌市| 沐川县| 永寿县| 明星| 武邑县| 嘉定区| 北票市| 开化县| 宁城县| 子长县| 张北县| 汝阳县| 潍坊市| 封开县| 拉萨市|