/*--村长学习c之路 工具dev c++ 4.9.9.2---*/
#include
int main()
{
/* 测试字符串输出格式*/
printf("%-8s\n","china");
printf("%s\n","christan");
printf("-------------------------------------------\n");
/*测试制表符格式*/
printf("*\t*\t*\t*\n");
printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");
printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");
printf("-------------------------------------------\n");
/*测试单精度和双精度数据类型取得的有效数字位数之间的差别*/
double x1,y1;
float x2,y2;
x1=111111.111;y1=222222.222;x2=111111.111;y2=222222.222;
printf("%f\n",x1+y1);
printf("%8.8f\n",x2+y2);
printf("%f\n",(x1+y1)-(x2+y2));/*两者之差为0.004875,由于x1、y1为双精度取得16位有效数字,6位
有效小数,而x2和y2为单精度有效数字为7位,x2、y2之和字面上为333333.333共9为有效数字则只有333333.3在
电脑中显示为原数,后面的0.033就会有电脑自己决定了!*/
float f=123.456;/*测试单精度数输出格式*/
printf("-------------------------------------------\n");
printf("%f \n%10f \n%10.2f \n%.2f \n%-10.2f \n",f,f,f,f,f);/*f在内存中存储的误差导致
第一个输出时候显示23.456001,这个问题如何解决呢?*/
printf("-------------------------------------------\n");
printf("%e\n",f);
printf("%e \n%10e \n%10.2e \n%.2e \n%-10.2e \n",f,f,f,f,f);
printf("123456789123456789123456789123456789123456789\n");
int temp;
scanf("%d",&temp);
return 0;
}