C語(yǔ)言編程求兩個(gè)數(shù)的平均值方法(三種方法)

第一種方法是最常見(jiàn)的
average=(a + b) / 2這種方式,求兩個(gè)數(shù)的平均值

我們一直強(qiáng)調(diào)網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站對(duì)于企業(yè)的重要性,如果您也覺(jué)得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過(guò)程中的有力推手。專業(yè)網(wǎng)絡(luò)公司不一定是大公司,成都創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

第二種方法是
當(dāng) a<b 時(shí)
averag=a+(b-a)/2

這里著重介紹的是第三種方法

average=(a&b) + (a^b)>>1

推導(dǎo)過(guò)程如下
a + b = (a&b) 2 + (a^b)) ———》average=((a&b)2+(a^b))/2 ————》average=(a&b) + (a^b)>>1

eg:
兩個(gè)數(shù)為15和5
15二進(jìn)制序列低位為1111
5二進(jìn)制序列低位為0101
按位與(&)運(yùn)算后得到兩者相同的部分0101
按位異或(^)運(yùn)算后得到兩者不同的部分1010
因?yàn)橄嗤牟糠謨烧叨加?,所以要乘以二,再加上不同的部分(至此?5+5)再除以2就是平均值(10)。
0101為5,乘以2為10,加上1010(10)為20,再除以2就是平均值10.

源代碼實(shí)例:

#include<stdio.h>
#include<stdlib.h>
int average(int a, int b)
{
    return (a&b) + ((a^b) >> 1);
}
int main()
{
    int num1, num2;
    int result;
    printf("請(qǐng)輸入兩個(gè)數(shù)\n");
    scanf("%d%d", &num1, &num2);
    result = average(num1, num2);
    printf("平均值是%d\n", result);
    system("pause");
    return 0;
}

網(wǎng)站名稱:C語(yǔ)言編程求兩個(gè)數(shù)的平均值方法(三種方法)
當(dāng)前鏈接:http://muchs.cn/article46/ijsdhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航微信小程序、網(wǎng)站策劃App開(kāi)發(fā)靜態(tài)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)