Practice

1.输入名字和姓氏,以“名字,姓氏”的格式输出打印。

#include
int main(void)
{
char name[20];
char family[20];
printf("My Handsome Master, please enter your name:
\n");
scanf("%s %s", &name, &family);
//名字和姓氏一起读的话,需要先输入名字再输入姓氏,中间要有空白字符(空格、制表、换行)
printf("\"%s,%s\"!\n", name, family);//注意双引号的转义字符
return 0;
}

2.输入名字,以一定格式(略)输出。
#include
#include

int main(void)
{
char name[20];
int length = 0;

printf("please enter your name: \n");
scanf("%s", name);
printf("1: \"%s\"\n", name);
printf("2: \" s\"\n", name);
printf("3: \"%-20s\"\n", name);
length = strlen(name) + 3;
printf("4: \"%*s\"\n", length, name);//注意*代表输出宽度length  ! !
!

return 0;
}

3. 题略
#include
int main(void)
{
float f;
printf("please enter a float number: \n");
scanf("%f", &f);
printf("a. The input is %0.1f or %0.1e\n", f, f);
printf("b. The input is +%5.3f or %4.3e\n", f, f);

return 0;
}

4.题略
#include
int main(void)
{
char name[30];
float height;

printf("My owner, please enter your name and height (eg: tom
180): \n");
scanf("%s %f", &name, &height);
printf("Dear %s, you are %.3f cm tall\n", name, height);

return 0;
}

5.题略
#include
#include

int main (void)
{
char name[10];
char fame[10];
int num1 = 0;
int num2 = 0;

printf("Please enter your name:\n");
scanf("%s",name);
num1 = strlen(name);
printf("Please enter your famliy name:\n");
scanf("%s",fame);
num2 = strlen(fame);
printf("%s %s\n%*d
%*d\n",name,fame,num1,num1,num2,num2);
printf("%s %s\n%-*d
%-*d\n",name,fame,num1,num1,num2,num2);
//注意*的使用

return 0;
}
结果如下图
6.题略

#include
#include

int main(void)
{
float num_f = 0;
double num_d = 0;
num_f = 1 / 3;
num_d = 1 / 3;
 
     
%num_f = 1.0 / 3.0;
%num_d = 1.0
/ 3.0;

printf("%.4f\n%.12f\n%.16f\n\n", num_f, num_f, num_f);
printf("%.4lf\n%.12lf\n%.16lf\n\n", num_d, num_d,
num_d);
printf("%d\n%d\n",FLT_DIG,DBL_DIG);
return 0;
}
结果显示
上网一查得到说法如下:
语法没有错,可以这样写,不过f的值是0.0

因为数字在C/C++中默认的类型是int,两个int的四则运算结果仍然是int

所以1/3=0.33333……,强制转化成int后结果为0,再将int的0赋值给float类型的f,强制转化后就是0.0,所以不是你想要的结果0.3333……,

如果想得到0.3333……,应该这样写:

float f = (float) 1 / 3 或 f = 1 / (float) 3

或者

float f = 1.0 / 3 或 f = 1 / 3.0 或 f = 1.0 / 3.0

对于double型数据,小数点后超过15位后的数据不能保证精度。

7.题略
最后一题了,好像不是很难,懒得做了,饿死了要吃晚饭了,直接复制一份网上的答案到vs2010环境下,尼玛,居然检测出来是复制到网页上的答案,还报错了。尼玛,真是吊啊
解决办法,先复制到TXT文档里,结果还是不行,再复制到word里,这才行了

#include
#define GALLON 3.785  //1 gallon = 2.785
litre
#define MILE 1.609   //1 mile = 1.609
kilometer

int main(void)
{
float mile,gallon;
printf("Please input miles and gallons:");
scanf("%f %f",&mile,&gallon);
printf("Miles per
gallon:%.1f\n",mile/gallon); 
printf("Litres per 100
kilometre:%.1f\n",gallon*GALLON/(100*mile*MILE));
%getchar();
%getchar();
return(0);
}
好像最后的结果有点问题,懒得改了,饿了,要吃饭了,不然胃疼又不值得了(这题不难关键)

C Primer Plus_第四章_字符串和格式化输入输出_编程练习的更多相关文章

  1. C Primer Plus_第6章_循环_编程练习

    1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...

  2. C Primer Plus_第5章_运算符、表达式和语句_编程练习

    Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...

  3. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  4. c语言之字符串和格式化输入输出

    字符串和格式化输入输出 #include<stdio.h> #include<string.h> #define DENSITY 62.4 int main(void) { f ...

  5. C++ Primer Plus 第四章 复合类型 学习笔记

    第四章 复合类型 1. 数组概述 1.1 数组的定义 数组(array)是一种数据格式,能够存储多个同类型的值.每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素. 数组声明的三 ...

  6. 【C++】《C++ Primer 》第四章

    第四章 表达式 一.基础 重载运算符:当运算符作用在类类型的运算对象时,用户可以自行定义其含义. 左值和右值: C中:左值可以在表达式左边,右值不能. C++中:当一个对象被用作右值的时候,用的是对象 ...

  7. C Primer Plus_第8章_字符输入输出和输入确认_编程练习

    1.题略 #include <stdio.h> int main(void) { ; printf("Please enter text here(end with Ctrl + ...

  8. C Primer Plus_第10章_数组和指针_编程练习

    1. /*rain.c 针对若干年的降水量数据,计算年降水总量.年降水平均量,以及月降水平均量*/ #include <stdio.h> #define MONTHS 12 #define ...

  9. C Primer Plus_第9章_函数_编程练习

    1.题略 /*返回较小值,设计驱动程序测试该函数*/ #include <stdio.h> double min (double a, double b); int main (void) ...

随机推荐

  1. Linux下的一个图形管理工具webmin

    这个工具其实我在两年前的小白时期还是经常用的,因为那时候对Linux比较陌生在为数server的时候帮了我很多工作,现在周末外面下雨,闲来无事莫名其妙的想起他来. 工具优点:最大特点是他是脚本安装 不 ...

  2. 一个简单的html5页面在线速成工具!(当然本文主要说下他的成果的结构)

    分享一个好玩的web app页面速成工具 当然主要是让大家看下他的原理 看着他的结构大家就该猜到这个了.这个是利用换页之后给当前div加了一个active,然后利用css控制效果 这个毫无疑问是采用最 ...

  3. spring 缓存(spring自带Cache)(入门)源码解读

    spring自带的缓存类有两个基础类:Cache(org.springframework.cache.Cache)类,CacheManager(org.springframework.cache.Ca ...

  4. POJ 2411 Mondriaan&#39;s Dream

    状压DP Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 9938 Accepted: 575 ...

  5. Spark之集群搭建

    注意,这种安装方式是集群方式:然后有常用两种运行模式: standalone , on yarn 区别就是在编写 standalone 与 onyarn 的程序时的配置不一样,具体请参照spar2中的 ...

  6. java系列-使用maven创建web项目(二)

    推荐2个maven找jar包配置的网站,只需要搜索关键字即可找到需要的Jar包,非常方便,比如:MySQL就可以找到mysql-connect-Java.jar. http://search.mave ...

  7. 《深入浅出WPF》笔记三

    1.Field:字段,封装在类中的变量. Method:方法,封装在类中的函数. 成员:类中的字段和方法,可分为静态成员和非静态成员. 静态字段在内存中只有一份拷贝. 非静态字段是每个实例拥有一个拷贝 ...

  8. Jquery简单瀑布流代码示例

    最近很多网站都采用瀑布流风格设计,感觉挺有个性的,比较合适做图片类型的网站,没事仿开心网做一个瀑布流示例. 需要用到Jquery,jquery.masonry.min.js <!DOCTYPE ...

  9. C#GDI+编程基础(一:Graphics画布类)

    GDI+存在的意义:将变成与具体硬件实现细节分开. GDI+步骤:获取画布,绘制图像.处理图像 命名空间: using System.Drawing;//提供对GDI+基本图形功能的访问 using ...

  10. 消灭Bug!十款免费移动应用测试框架推荐

      对于移动应用开发者而言,Bug往往是最让人头疼的一大问题.不同于时时刻刻可以修补的Web App,移动App中的Bug往往隐藏得很深,甚至有时候等到用户使用才显现出来,这么一来开发者搞不好就会赔了 ...