c primer plus第6章总结:循环
来源:互联网 发布:小甲鱼python视频教程 编辑:程序博客网 时间:2024/05/21 10:46
1、循环读入:
sate = scanf("%d", &n) == 1; // 关系运算符== 比 赋值符= 的优先级高,所以可以不加括号;
while (sate )
{
sate = scanf("%d", &n) == 1;
}
或:
while (scanf("%d", &n) == 1)
{
}
// 跳过输入直到第一个不为空格和数字的字符
while (scanf("%d", &n) == 1)
;
2、浮点数比较:
while (fabs(pi - 3.14159) > 0.0001)
{
scanf("%lf", &pi);
}
判断是否为0:
E = 0.0001;
while (y < E && y > -E)
3、while、for、do whlie 如何选择:
- 先确定需要入口条件(while 、for)循环还是退出条件(do while)循环;
- 循环设计初始化和更新变量时,使用for较合适;
- 哪个效率更高??效率差别不大,按习惯和代码风格选取。
4、数组:
- 字符数组内包含空字符\0,则字符数组内容就构成一个字符串,空字符标志字符串的结尾;
- 在当字符串使用时,字符数组要保证数组中存在'\0'做结尾;
- 虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈;
4.1、字符数组由若干个元素组成,每个元素放一个字符;而字符指针变量中存放的是地址(字符串/字符数组的首地址),绝不是将字符串放到字符指针变量中(是字符串首地址);4.2、赋值方式:
对字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值
char str[14];str="I love China"; (但在字符数组初始化时可以,即char str[14]="I love China";)而对字符指针变量,采用下面方法赋值:char* a;a="I love China";或者是 char* a="I love China"; 都可以
4.3、对字符指针变量赋初值(初始化):
char* a="I love China";等价于:char* a;a="I love China";而对于字符数组的初始化char str[14]="I love China";不能等价于:char str[14];str="I love China"; (这种不是初始化,而是赋值,而对数组这样赋值是不对的)
4.4、如果定义了一个字符数组,那么它有确定的内存地址;而定义一个字符指针变量时,它并未指向某个确定的字符数据,并且可以多次赋值。
5、循环使用数组:
for (index = 0; index < SIZE; index++)
scanf("%d", &score[index]); // 循环输入
for (index = 0; index < SIZE; index++)
printf("%5d", score[index]); // 循环打印
for (index = 0; index < SIZE; index++)
sum += score[index]; // 计算所有元素的和
课后习题总结
1、创建[a--z]的数值:
char ch[26] = { 0 }; // 注意数组的初始化
for( char index = 'a'; index < ('a'+26); index++ ,i++)
{
ch[i] = index ;
printf("%c ",ch[i]); // 字符以整数形式存储,可直接+int;
}
14、读入一行输入,再反向打印,输入行不超过255个字符;
void main()
{
const static int MAX_CHAR_COUNT = 255;
char buf[MAX_CHAR_COUNT ] = { 0 }; // 用数组存储输入
char c = 0;
int count = 0;
while (scanf("%c", &c) == 1 && c != '\n' && count < MAX_CHAR_COUNT)
{
buf[count++] = c;
}
for (int i = count - 1; i >= 0; --i)
{
printf("%c", buf[i]);
}
printf("\n");
}
0 0
- c primer plus第6章总结:循环
- C primer plus第6章(c控制语句:循环)习题
- C Primer Plus 第6章 C控制语句:循环 编程练习
- c primer plus第3章总结:数据类型
- c primer plus第7章总结:分支跳转
- c primer plus第8章总结:字符输入输出
- c primer plus第9章总结:函数
- c primer plus第10章总结:数组和指针
- c primer plus第13章总结:文件输入/输出
- c primer plus第15章总结:位操作
- C primer plus 第5.6.7章总结
- C++primer plus第4-6章笔记
- C Primer Plus 第6版 12章 练习9
- C Primer Plus(第6版)第二章答案
- C Primer Plus(第6版)第三章答案
- C Primer Plus(第6版)第四章答案
- C Primer Plus(第6版)第五章答案
- C Primer Plus(第6版)第六章答案
- Linux系统中grep命令
- JavaBasic
- HTTP状态码详解
- 关于 包、帧、数据报、段和消息 的概念区别
- strcpy、strcat函数源码,strncpy,strncat,strncmp,strtok
- c primer plus第6章总结:循环
- 浅谈web前端与后台数据交互
- Packet for query is too large
- 准备小圆点
- android进程重启及activity恢复
- Leetcode 347. Top K Frequent Elements
- objc_msgSend报错
- 用apt-get删除文件遇到了问题
- Binary Tree Maximum Path Sum 二叉树的最大路径和