最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言在輸入輸出時遇到的常見問題總結(jié)

 更新時間:2022年09月22日 11:38:22   作者:sunny-ll  
大家在平時的做題中是否會遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn),需要的可以參考一下

一、前言

大家好,我是一個初學(xué)C語言的小菜狗,是否大家在平時的做題中會遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時候,總是和題目給出的樣例輸出格式不同 ,導(dǎo)致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn):數(shù)值取整問題、數(shù)值四舍五入、輸出%d格式、除法%、除法 / 、連續(xù)輸?shù)戎R點(diǎn)。

二、取整的方法

(1)使用 int 強(qiáng)制轉(zhuǎn)換

若輸出的結(jié)果有小數(shù),可以使用 int 強(qiáng)制去掉整數(shù)后面的小數(shù)點(diǎn)。代碼如下:

#include <stdio.h>
int main()
{
    int c = 1.2;
    c = (int)c;  // 強(qiáng)制轉(zhuǎn)換
    float  a,b;
    a = 1.2f;    // 1.2f 這里的 f 是保證數(shù)值為float型,防止默認(rèn)為 double型
    b = (int)a;  // 強(qiáng)制轉(zhuǎn)換
    printf("%f\n", a);  // 1.200000
    printf("%f\n", b);  // 1.000000
    printf("%d\n", c);  // 1
    return 0;
}

(2)使用floor函數(shù)向下取整

若輸出的結(jié)果有小數(shù),可以使用 floor 函數(shù),可以得到比該數(shù)小的最大整數(shù),代碼如下:

// 注意:在使用floor函數(shù)時,需要加上頭文件 #include <math.h>
#include <stdio.h>
#include  <math.h>
int main()
{
    int a ;
    float c = -1.2f;
    float b=1.2f; 
    int d = -1.2;  // 注意: d 的類型為int型  已經(jīng)被int 強(qiáng)行轉(zhuǎn)化為 -1
    a = floor(1.3);  // 函數(shù)向下取整,得到比 a 小的最大整數(shù)
    b = floor(b);  // 函數(shù)向下取整,得到比 b 小的最大整數(shù)
    c = floor(c);  // 函數(shù)向下取整,得到比 c 小的最大整數(shù)
    d = floor(d);  // 已經(jīng)被 int 強(qiáng)行轉(zhuǎn)化為 -1
    printf("%d\n",a);  //  1
    printf("%f\n", b); //  1.000000
    printf("%f\n", c); //  -2.000000
    printf("%d\n", d); //  -1
    return 0;
}

(3)使用ceil函數(shù)向上取整

若輸出的結(jié)果有小數(shù),可以使用 ceil 函數(shù),可以得到比該數(shù)大的最小整數(shù),代碼如下:

// 注意:在使用ceil函數(shù)時,需要加上頭文件 #include <math.h>
#include <stdio.h>
#include <math.h>
int main()
{
    int a;
    int b;
    float c = 1.2;
    a = ceil(1.3);   // 函數(shù)向上取整,得到比 a 大的最小整數(shù)
    b = ceil(-1.1);  // 函數(shù)向上取整,得到比 b 大的最小整數(shù)
    c = ceil(c);     // 函數(shù)向上取整,得到比 c 大的最小整數(shù)
    printf("%d\n", a); // 2
    printf("%d\n", b); // -1
    printf("%f\n", c); // 2.000000
    return 0;
}

三、數(shù)值四舍五入

(1)使用round函數(shù)進(jìn)行四舍五入

若題目要求,最后的輸出結(jié)果進(jìn)行四舍五入,此時就可以用到round函數(shù),注意:round函數(shù)只是針對整型的四舍五入,不能對浮點(diǎn)型使用。規(guī)則:(±)0.5時往絕對值小的方向 ,代碼如下:

// 注意:在使用round函數(shù)時,需要加上頭文件 #include <math.h>
#include <stdio.h>
#include <math.h>
int main()
{
    int a,b,c;
    a = round(3.6);  // 進(jìn)行四舍五入
    b = round(2.4);  // 進(jìn)行四舍五入
    c = round(1.46); // 進(jìn)行四舍五入
    printf("%d\n", b);  // 4
    printf("%d\n", a);  // 2
    printf("%d\n", c);  // 1  發(fā)現(xiàn)round函數(shù)只是針對整數(shù)的四舍五入,不針對浮點(diǎn)數(shù)
    return 0;
}

(2)使用rint函數(shù)進(jìn)行四舍五入

若題目要求,最后的輸出結(jié)果進(jìn)行四舍五入,此時就可以用到rint函數(shù),注意:rint函數(shù)只是針對浮點(diǎn)型的四舍五入,不能對整型使用。規(guī)則:(±)0.5時往絕對值小的方向 ,代碼如下:

// 注意:在使用rint函數(shù)時,需要加上頭文件 #include <math.h>
#include <stdio.h>
#include <math.h>
int main()
{
    double a, b;
    a = rint(3.45689412);
    b = rint(3.65);
    printf("%lf\n", a);  // 3.000000
    printf("%lf\n", b);  // 4.000000
    return 0;
}

(3)重點(diǎn)應(yīng)用

到這里,大家肯定會提出疑問,上面演示的函數(shù),只能對整數(shù)進(jìn)行四舍五入,在小數(shù)中如果需要對,小數(shù)點(diǎn)后三位進(jìn)行四舍五入呢,接下來,我們來揭曉答案。

舉例:此時我們需要對一個小數(shù)保留三個小數(shù)位而第四個小數(shù)位按照四舍五入的規(guī)則進(jìn)行,我們將數(shù)字?jǐn)U大1000倍,使得第四位小數(shù)稱為新數(shù)字的第一位,然后我們可以給它加上0.5后再進(jìn)行強(qiáng)制性轉(zhuǎn)化。加0.5的原因就是: 假如這個小數(shù)位的數(shù)值大于5,加上0.5能夠?qū)崿F(xiàn)進(jìn)位的作用,倘若小于0.5,就沒有實(shí)現(xiàn)進(jìn)位的作用。如此,就能實(shí)現(xiàn)小數(shù)位的四舍五入。然后我們再對這個數(shù)值 進(jìn)行強(qiáng)制性轉(zhuǎn)化,然后再處以1000.0(記住,一定要1000.0,否則就會出現(xiàn)隱式轉(zhuǎn)化),在輸出的時候用%0.3f以實(shí)現(xiàn)保留三位小數(shù)。

代碼如下:

#include <stdio.h>
int main()
{
    float a=3.1415;
    // 注意 整除兩邊的數(shù)必須是同一個類型
    a = (int)(a * 1000 + 0.5) / 1000.0;  //此時都是浮點(diǎn)數(shù)類型
    printf("%.3f\n", a);  // 3.142
    return 0;
}

四、在C中輸出%d、%0xd、%-xd的輸出格式

1. %d左右對齊,輸出變量所有的數(shù)字。

2. %xd左右對齊,寬度為X,左邊填充空格

3. %xd,當(dāng)變量的實(shí)際寬度大于x時,輸出變量所有的數(shù)字

4. %xd左右對齊,寬度為x,左邊填充 0 

代碼如下:

#include <stdio.h>
int main()
{
    int a = 1234;
    // %d左右對齊,輸出變量所有的數(shù)字
    printf("%d\n", a);  // (1234)
    // %xd左右對齊,寬度為X,左邊填充空格
    printf("%6d\n", a); // (  1234)
    // %xd,當(dāng)變量的實(shí)際寬度大于x時,輸出變量所有的數(shù)字
    printf("%3d\n", a); // (1234)
    // %xd左右對齊,寬度為x,左邊填充 0 
    printf("%05d\n", a);// (01234)
    return 0;
}

五、除法:余除 % 、整除  /

1. 余除 % 和整除 / 兩邊必須是保持同一個類型的數(shù)值(且最好保持為整型)

2. 余除 的結(jié)果是兩個數(shù)相處的余數(shù),代碼如下:

#include <stdio.h>
int main()
{
    int a = 2;
    int b = 3;
    printf("%d\n", b % a); // 3%2=1......1(余1)  結(jié)果為1
    return 0;
}

3. 整除 的結(jié)果是兩個數(shù)相除的商,代碼如下:

#include <stdio.h>
int main()
{
    int a = 4;
    int b = 8;
    printf("%d\n", b / a); // 8/4......0(余0)  結(jié)果為2
    return 0;
}

4.整除、余除的應(yīng)用:一般用于較大數(shù),求各個位數(shù),代碼如下:

#include <stdio.h>
int main()
{
    int x = 12345;
    int a, b, c, d, e;
    e = x % 10;   // 求最后一位
    d = x / 10 % 10;  //(x/10%10)表示丟掉最后一位,求倒數(shù)第二位
    c = x / 100 % 10; //(x/100%10)表示丟掉后兩位,求倒數(shù)第三位
    b = x / 1000 % 10;// (x/1000%10)表示丟掉后三位,求倒數(shù)第四位 
    a = x / 10000;    // (x/10000)表示丟掉后四位,求第一位
    printf("%d %d %d %d %d", a, b, c, d, e);  // 1  2  3  4  5
    return 0;
}

五、連續(xù)輸出

大家在刷題的時候肯定會遇到題目要求,數(shù)據(jù)的連續(xù)輸出,其中代碼如下:

#include <stdio.h>
int main()
{
    int x;
    while (scanf("%d", &x) != EOF)  // 連續(xù)輸出方式
    {
        printf("%d\n", x);
    }
    return 0;
}

到此這篇關(guān)于C語言在輸入輸出時遇到的常見問題總結(jié)的文章就介紹到這了,更多相關(guān)C語言輸入輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C++泛型裝飾器

    詳解C++泛型裝飾器

    這篇文章主要為大家介紹了C++的泛型裝飾器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Matlab處理圖像后實(shí)現(xiàn)簡單的人臉檢測

    Matlab處理圖像后實(shí)現(xiàn)簡單的人臉檢測

    本文主要介紹一下如何使用matlab進(jìn)行圖像處理后實(shí)現(xiàn)人臉檢測,感興趣的可以了解一下
    2021-11-11
  • C語言直接插入排序算法

    C語言直接插入排序算法

    大家好,本篇文章主要講的是C語言直接插入排序算法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 詳解C語言中常用的失敗退出和成功返回

    詳解C語言中常用的失敗退出和成功返回

    在 C 語言中,封裝函數(shù)時,我們通常需要判斷函數(shù)調(diào)用是否成功,并據(jù)此采取不同的操作,例如,在調(diào)用系統(tǒng)函數(shù)或庫函數(shù)時,我們通常會使用一些錯誤處理機(jī)制,來輸出錯誤信息、退出程序或返回不同的狀態(tài),以下是如何參考使用這些錯誤處理機(jī)制的示例,需要的朋友可以參考下
    2024-12-12
  • C語言實(shí)現(xiàn)飛機(jī)訂票系統(tǒng)

    C語言實(shí)現(xiàn)飛機(jī)訂票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)飛機(jī)訂票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言之sizeof與strlen的使用及區(qū)別

    C語言之sizeof與strlen的使用及區(qū)別

    這篇文章主要介紹了C語言之sizeof與strlen的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • c++中的基本IO類型詳解

    c++中的基本IO類型詳解

    IO的設(shè)備可以是文件、控制臺、string。c++主要定義了三種IO類型,分別被包含在iostream、fstream、sstream頭文件中,本文給大家分享c++中的基本IO類型,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • C語言實(shí)現(xiàn)職工管理系統(tǒng)

    C語言實(shí)現(xiàn)職工管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)職工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C++十六進(jìn)制宏的用法詳解

    C++十六進(jìn)制宏的用法詳解

    C++十六進(jìn)制宏的用法;本文將詳細(xì)介紹
    2012-11-11
  • 詳解C++ 動態(tài)庫導(dǎo)出函數(shù)名亂碼及解決

    詳解C++ 動態(tài)庫導(dǎo)出函數(shù)名亂碼及解決

    這篇文章主要介紹了C++ 動態(tài)庫導(dǎo)出函數(shù)名亂碼及解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

郯城县| 健康| 永顺县| 陕西省| 青铜峡市| 德钦县| 永修县| 灵丘县| 莱西市| 北辰区| 乐业县| 万山特区| 宝山区| 仙游县| 长春市| 黄龙县| 中宁县| 广宁县| 本溪市| 阳新县| 藁城市| 扶余县| 威远县| 宜州市| 龙门县| 清水县| 酉阳| 齐齐哈尔市| 广汉市| 耒阳市| 陆河县| 宣汉县| 依安县| 平武县| 逊克县| 阿拉善右旗| 蕲春县| 买车| 洮南市| 盘山县| 富源县|