| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7998 人关注过本帖
标题:给定一浮点数和整数n, 编写一函数把浮点数进行四舍五入以保留n位小数
只看楼主 加入收藏
netsolo
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2008-3-6
收藏
得分:0 
printf(格式化输出数据)
相关函数 scanf,snprintf
表头文件 #include<stdio.h>
定义函数 int printf(const char * format,.............);
函数说明
printf()会根据参数format字符串来转换并格式化数据,然后将结
果写出到标准输出设备,直到出现字符串结束('\0')为止。参数
format字符串可包含下列三种字符类型
1.一般文本,伴随直接输出。
2.ASCII控制字符,如\t、\n等。
3.格式转换字符。
格式转换为一个百分比符号(%)及其后的格式字符所组成。一般而
言,每个%符号在其后都必需有一printf()的参数与之相呼应(只
有当%%转换字符出现时会直接输出%字符),而欲输出的数据类
型必须与其相对应的转换字符类型相同。
Printf()格式转换的一般形式如下
%(flags)(width)(.prec)type
以中括号括起来的参数为选择性参数,而%与type则是必要的。底
下先介绍type的几种形式整数
%d 整数的参数会被转成一有符号的十进制数字
%u 整数的参数会被转成一无符号的十进制数字
%o 整数的参数会被转成一无符号的八进制数字
%x 整数的参数会被转成一无符号的十六进制数字,并以小写
abcdef表示
%X 整数的参数会被转成一无符号的十六进制数字,并以大写
ABCDEF表示浮点型数
%f double 型的参数会被转成十进制数字,并取到小数点以下六
位,四舍五入。
%e double型的参数以指数形式打印,有一个数字会在小数点前,
六位数字在小数点后,而在指数部分会以小写的e来表示。
%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。
%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标
准是根据欲打印的数值及所设置的有效位数来决定。
%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格
式。
字符及字符串
%c 整型数的参数会被转成unsigned char型打印出。
%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止
%p 如果是参数是“void *”型指针则使用十六进制格式显示。
prec 有几种情况
1. 正整数的最小位数。
2.在浮点型数中代表小数位数
3.在%g 格式代表有效位数的最大值。
4.在%s格式代表字符串的最大长度。
5.若为×符号则代表下个参数值为最大长度。
width为参数的最小长度,若此栏并非数值,而是*符号,则表示以
下一个参数当做参数长度。
flags 有下列几种情况
#NAME?
+ 一般在打印负数时,printf()会加印一个负号,整数则不加任
何负号。此旗标会使得在打印正数前多一个正号(+)。
# 此旗标会根据其后转换字符的不同而有不同含义。当在类型为o
之前(如%#o),则会在打印八进制数值前多印一个o。
而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,
在型态为e、E、f、g或G 之前则会强迫数值打印小数点。在类型为g
或G之前时则同时保留小数点及小数位数末尾的零。
0 当有指定参数时,无数字的参数将补上0。默认是关闭此旗标,所
以一般会打印出空白字符。
返回值 成功则返回实际输出的字符数,失败则返回-1,错误原因存于errno中。

程序代码:
#include<stdio.h>

int main()
{
    int    i = 150 ;
    int    j = -100 ;
    double k = 3.14159 ;
    printf("%d%f%x \ n", j, k, i);
    printf("%2 d%*d \ n", i, 2, i);  /*参数2 会代入格式*中,而与 %2d 同意义*/
    return 0;
}

2008-05-14 09:45
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
程序代码:
/*******************************************

            妙哉,看来对printf的格式
        还需要再学习啊。

*******************************************/
#include<stdio.h>
int main(void)
{
        double a;
        int n;
        printf("请输入n值:\n");
        scanf(" %d",&n);
        printf("\n请输入a值:\n");
        scanf("%lf",&a);
        printf("\n四舍五入后为:%.*f\n",n,a);
        getch();
}
2008-05-14 10:33
独行者123
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-5-1
收藏
得分:0 
谢了哦,第一次接触到printf的这种用法,看来以后要多向各位高手请教啊,呵呵
2008-05-14 12:47
快速回复:给定一浮点数和整数n, 编写一函数把浮点数进行四舍五入以保留n位小数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032121 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved