《linux c 編程一站式學習》課後部分習題解答__區塊鏈

來源:互聯網
上載者:User

1、假設變數x和n是兩個正整數,我們知道x/n這個運算式的結果要取Floor,例如x是17,n是4,則結果是4。如果希望結果取Ceiling應該怎麼寫運算式呢。例如x是17,n是4,則結果是5;x是16,n是4,則結果是4。

答: (x+n-1)/n
(1). 設x=kn,k為整數,即x為n的整數倍。則(x+n-1)/n=(kn+n-1)/n=((k+1)n-1)/n,此時分子沒有達到n的k+1倍,但大於等於n的k倍,  預設計算取下整則為k。符合要求。
(2).設x=kn+m,k為整數,m為整數且0<m<n。則(x+n-1)/n=(kn+m+n-1)/n=((k+1)n+m-1)/n。此時分子的大於等於(k+1)n,小於(k+2)n,按照預設計算應該為k+1。符合要求。

2、寫一個函數,參數是整型變數 x ,功能是列印 x 的個位和十位。

#include<stdio.h>int main(void){        int m;        printf("please input the number:");        scanf("%d",&m);        printf("十位 is %d, 個位 is %d\n",(m/10)%10,m%10);        return 0;}

3、編寫一個布爾函數int is_leap_year(int year),判斷參數year是不是閏年。如果某年份能被4整除,但不能被100整除,那麼這一年就是閏年,此外,能被400整除的年份也是閏年。

int is_leap_year(int year){    if (year % 4 == 0)    {        if (year % 100 != 0)            return 1;        else return 0;    }    else if (year % 400 == 0)        return 1;    else        return 0;}
4、編寫一個函數double myround(double x),輸入一個小數,將它四捨五入。例如myround(-3.51)的值是-4.0,myround(4.49)的值是4.0。可以調用math.h中的庫函數ceil和floor實現這個函數。

double myround(double x){    int sa = 0, si = 0;    if (x == 0.0)        return 0.0;    else if (x > 0.0)    {        sa = (int)x;        si = x + 0.5;        if (sa == floor(si)) <span style="color: rgb(51, 51, 51); font-family: 'WenQuanYi Micro Hei Mono', 'WenQuanYi Micro Hei', 'Microsoft Yahei Mono', 'Microsoft Yahei', sans-serif, Simsun; font-size: 14.2857141494751px; line-height: 26px;">//如果if語句成立說明x的小數比0.5小,應當捨去</span>            return sa;        else  return sa + 1;    }    else    {        sa = (int)x;        si = x - 0.5;        if (sa == ceil(si))            return sa;        else            return sa - 1;    }}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.