C Primer Plus_第6章_循环_编程练习
1.题略
//注意,"ABCDEF"是占用7个字符的
4.题略
letter);
ch);
\n");
(min+i)*(min+i)*(min+i));
//注意是j-i-1,因为字符串里头有结尾字符,多占了个位置
&b) == 1),但总是跳出循环,现scanf()返回值并不只有0和1啊!!!
//也可改成while(scanf("%f %f", &a, &b) !=
0)
");
心得:
1) 正整数,表示正确输入参数的个数。例如执行
scanf("%d %d", &a, &b);
如果用户输入"3
4",可以正确输入,返回2(正确输入了两个变量);
如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
2)
0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
3)
EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。
函数同样,它的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5
//注意定义返回值的函数时,要说明返回值类型例如double,这里就不是void咯 int main(void) { float a,
b; int status; double c; printf("Please enter two float number: ");
status = scanf("%f %f", &a, &b); while(status != 0) { c =
nimeifu(a, b); printf("%.2lf\n", c); printf("Fuck me with another
two integers: "); status = scanf("%f %f", &a, &b); } return
0; } double nimeifu(float i, float j) { double h; h = (i-j)/(i*j);
return h; }
printf("Please enter minimum and maximum int limits: "); scanf("%d
%d", &a, &b); while (a != b) { c = nimeifu(a, b);
printf("the sums of the squares from %d to %d is %d\n", a*a, b*b,
c); printf("Enter next set of limits, you little bitch: ");
scanf("%d %d", &a, &b); } printf("Done!"); return 0; } int
nimeifu(int a, int b) { int sum=0, i; for(i=a; i<=b; i++) sum =
sum + i*i; return sum; }
自己编了个幂函数,没有用math.h里的pow,显得麻烦一些,但也有好处。使用pow必须遵守float或者double类型的数据,而且好像pow(a,b)中的a不能为负数,可我实际用了下-1.0代替a,也可行,但是-1就不行。很多简单的问题东西要自己动手试一下才能确定啊
//天啊,居然被我调试出来了
心得:这题搞的我头都晕乎了,晕乎了好长时间才弄出来,也是晕乎乎弄出来的,现在也是晕乎乎的,不知道自己为什么就突然想到了for(j=0,
sum=0; j<=i;
j++)。其实也是一个过程,调试程序,利用监视窗口,观察程序中每个变量sum,tab1[],tab2[],每一步每一个数据的变化,发现sum有被多计算被重复计算,没有及时更新位0,但循环里的话,自己还不知道怎么给每次更新为0,只能想到赋值为0,后来想到可以再for循环每一次迭代是用逗号进行更新sum的值为0。大概是这么想到的。所以学会设置断点并利用监视器来观察每一步数据的变化,进而对程序进行调整,是一件非常有意义的事情吧。这个程序,自己需要多体会,以后还需再编写思考的。
Primer Plus_第6章_循环_编程练习" title="C Primer Plus_第6章_循环_编程练习">(PS:scanf和printf函数使用时,尽量注意格式说明符要一致,double型数据要用%lf,否则容易出错了自己还不容易发现,这也是我遇到的问题,切记切记)
!= '\n'; i++); //自己还要多体会呀
i-j>0; j++); //自己还要多体会呀
Primer Plus_第6章_循环_编程练习" title="C Primer Plus_第6章_循环_编程练习">注意,换行符这种在控制台窗口上看不见的输入,也是字符
,所以倒着输出的时候,先输出换行符,再到looc等,这也是here we
go下面空一行的原因。另外,这种for()小括号中包含循环部分,一语句就搞定的for语句,记得再后面加上分号。
Dap > Dei; i++);//两个逗号连用!!
Dap(%lf)\n", i, Dei, Dap);
C Primer Plus_第6章_循环_编程练习的更多相关文章
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- C Primer Plus_第四章_字符串和格式化输入输出_编程练习
Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...
- C Primer Plus_第9章_函数_编程练习
1.题略 /*返回较小值,设计驱动程序测试该函数*/ #include <stdio.h> double min (double a, double b); int main (void) ...
- C Primer Plus_第10章_数组和指针_编程练习
1. /*rain.c 针对若干年的降水量数据,计算年降水总量.年降水平均量,以及月降水平均量*/ #include <stdio.h> #define MONTHS 12 #define ...
- C Primer Plus_第8章_字符输入输出和输入确认_编程练习
1.题略 #include <stdio.h> int main(void) { ; printf("Please enter text here(end with Ctrl + ...
- C Primer Plus_第三章_数据和C_复习题与编程练习
Review long代替int类型变量的原因是什么? 在您的系统中,long可以容纳比int更大的数:如果您确实需要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型会使程序的可移植性更 ...
- [C++ Primer Plus] 第5章、循环和关系表达式(二)课后习题
1.编写一个要求用户输入两个整数的程序,将程序将计算并输出这两个整数之间(包括这两个整数)所有的整数的和.这里假设先输入较小的整数,例如如果用户输入的是2和9,则程序将指出2-9之间所有整数的和为44 ...
- [C++ Primer Plus] 第5章、循环和关系表达式(一)程序清单——指针自加减优先级
程序5.4 #include<iostream> using namespace std; ; void main() { long long factorials[Size]; fact ...
- C Primer Plus 第3章 数据和C 编程练习
1. /* 整数上溢 */ #include <stdio.h> int main(void) { ; unsigned ; /* 无符号整数j像一个汽车里程指示表(形容的太好了,可参考& ...
随机推荐
- docker搭建ros-indigo-arm交叉编译环境
ROS运行环境:ARM ubuntu14.04 + ROS indigo在arm环境下编译ros应用程序,速度极慢,无法忍受,尝试在x86机器上搭建docker+ros交叉编译环境. 交叉编译环境的搭 ...
- 搭建TFS 2015 Build Agent环境(二)
在执行和安装配置的过程中,注意一定要使用管理员权限运行:ConfigureAgent.cmd 和RunAgent.cmd.配置的过程中,要注意几个内容:1.TFS地址不要写DefaultCollect ...
- SignalR 实现Web多人聊天室
ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消 ...
- JavaScript零基础学习系列四
案例分享 对象 具体的东西,在以js的眼光看所有的标签都是标签对象,对象是属性的无序集合. 创建对象有两种方式: 直接量: 构造器:所谓的构造器,其实就是函数,只不过这个函数有些特殊,因为它是用于创建 ...
- mysql返回最后一列数据
获取MySQL的表中每个userid最后一条记录的方法,并且针对userid不唯一的情况,需要的朋友可以参考下 表结构 CREATE TABLE `t1` ( `userid` int(11) DEF ...
- 光盘刻录 CD刻录软件 Ashampoo Burning Studio特别版 刻录CD就这么简单
著名的刻录软件Nero,其近上百M体积实在太大,而且安装之后的文件体积也有上G多.这么大的体积安装使用都不方便,好在现在很多都做得很不错,比如阿香婆的光盘刻录软件Ashampoo® Burning S ...
- EL表达式怎么获取Map的动态key?
缘由 El表达式在调用Map的时候,后台传过来的Map的key不一定是一个固定的值,需要根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个k ...
- nginx中将POST数据写到日志里面的正确方式
http://www.cnblogs.com/meteorx/p/3188647.html
- 【Beta】第五次任务发布
PM #100 日常管理&dev版宣传&设计报告管理后台. 后端 #101 完成收藏功能 完成管理员权限表的生成和接入(按位压缩权限表) 验收条件:收藏功能能够正常使用.能够区分常规用 ...
- centos7下 安装mysql
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-rele ...