91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

整數/小數以字符串形式輸出

發布時間:2020-07-03 23:37:44 來源:網絡 閱讀:645 作者:匯天下豪杰 欄目:編程語言

1、問題描述

  (1)、現在從鍵盤輸入一個整數(以%d格式符輸入),要求以裝換成字符串的形式輸出;

  (2)、現在從鍵盤輸入一個小數和小數位數(%lf%d),要求以字符串的形式輸出;

  這2個問題本身并不難,但是考慮全面和從算法上的優化確實不容易的,需要仔細認真的考慮!

2、用C實現

在VC下面用的VC++6.0版本實現

#include<stdio.h>

void printfInt(int data);
void printfDouble(double data, int count);

void printfDouble(double data, int count){
    int d = (int)data;
    double x = data - d;
    int i, tmp;
    int p = 1;

    printfInt(d);
    printf(".");
    for(i = 0; i < count; i++){
            p *= 10;
    }
    tmp = (int)(p*x+0.5);//在強轉時,由于有截斷誤差,所以加上0.5,保證了小數點最后一位的取值是正確的。
	printfInt(tmp);
}

void printfInt(int data){
    int q = 1;

    if(data > 1000000000){
            q = 1000000000;
    }else if(data > 100000000){
            q = 100000000;
    }else if(data > 10000000){
            q = 10000000;
    }else if(data > 1000000){
            q = 1000000;
    }else if(data > 100000){
            q = 100000;
    }else if(data > 10000){
            q = 10000;
    }else if(data > 1000){
            q = 1000;
    }else if(data > 100){
            q = 100;
    }else if(data > 10){
            q = 10;
    }

    for(; q; q /= 10){
            printf("%c", '0' + (data/q)%10);
    }
}

int main(void){
    int number;
    double x_number;
    int bit;

    printf("請輸入一個整數 : ");
    scanf("%d", &number);
    printf("請輸入小數,和小數位數 : ");
    scanf("%lf%d", &x_number, &bit);

    printfInt(number);
	printf("\n");
    printfDouble(x_number, bit);
	printf("\n");
}

運行結果

整數/小數以字符串形式輸出

3、算法分析

  (1)、我用的是if...else if...else if來判斷這個數是幾位數,因為用這個數每次/=10也可以判斷是幾位數,但是效率比較低,用if判斷的方法最多10次,就可以知道是幾位數字。

  (2)、其次,我知道了是幾位數,就可以讓(data/q)%10,data不變,讓q/=10,在循環中每次調用這個語句,就可以從最高位--->最低位順序取出,再加上'0',就轉換為一個一個的字符了,輸出即可。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广宗县| 巴彦淖尔市| 盘锦市| 郸城县| 胶州市| 策勒县| 南康市| 仙桃市| 清涧县| 宁陕县| 乐至县| 陇南市| 革吉县| 望城县| 和龙市| 阿巴嘎旗| 酒泉市| 鹤峰县| 七台河市| 正宁县| 宁河县| 济宁市| 祁连县| 六安市| 嵩明县| 台南市| 麦盖提县| 厦门市| 京山县| 多伦县| 扎兰屯市| 涟水县| 宁波市| 靖宇县| 额尔古纳市| 射阳县| 合阳县| 文山县| 郎溪县| 马边| 利津县|