网易云课堂程序设计入门—C语言第三周 循环学习笔记
2016-11-23 10:07
309 查看
第三周 循环
标签(空格分隔): 程序设计入门—C语言3.1 循环
3.1.1 循环
//数数几位数---------------------------------------------------------------- #include<stdio.h> int main() { int num ; int n=0; n++; scanf("%d",&num); //根据范围判断 if(num>999) { n=4; } else if(num>99) { n=3; }else if (num>9) { n=2; } printf ("%d\n",n); //题目明确四位及以下的整数,简化了判断,反过来不行 //用">"来判断的时候,从高处往下走,因为从高处往下判断,不需要判断上限 //while循环 num/=10; while (num>0){ n++; num/=10; } printf ("%d\n",n); //do while循环 do { n++; num/=10; }while(num>0); printf ("%d\n",n); return 0; }
复合赋值
5个算术运算符,+-*/%,可以和赋值运算符”=”结合起来,形成复合赋值运算符:
+=、-=、*=、/=、%=
total +=(sum+100)/2; --> total = total + (sum+100)/2;
total *= sun+12; --> total = total*(sum + 12);
递增递减运算符
”++”和”–”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量,这两个运算符分别叫做递增和递减运算符,它们的作用是给这个变量+1或-1
count++; count += 1; count = count + 1;
前缀后缀
++和–可以放在变量前面,叫做前缀形式,也可以放在变量后面,叫做后缀形式
a++的值是a+1以前的值,++a的值是a+1以后的值,无论哪个
3.1.2 while循环
while (条件){ 语句; } //------------------------ do{ <循环体> }while(循环条件); //两种循环的区别是在什么时候做判断,判断的条件是什么
while循环
循环体内要有改变条件的机会
如果我们把while翻译成当,那么一个while循环的意思就是:当条件满足时,不断的重复循环体内的语句
循环之前判断是否继续循环,所以有可能循环一次也没有被执行
条件成立是循环继续的条件
看程序运行结果
人脑模拟计算机的运行,在纸上列出所有的变量,随着程序的进展不断重新计算变量的值。当程序运行结束时,留在表格最下面的就是程序的最终结果。
验证
测试程序常使用边界数据,如有效范围两端的数据、特殊的倍数等
个位数,10,0,负数
在程序适当的地方插入printf输出变量内容,来调适程序
在程序中输出hr1 hr2看程序运行到哪
3.1.4 do-while循环
do-while循环在进入循环的时候不做检查,而是在执行完循环体的一段代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环
两种循环
do-while循环和while循环很像,区别是在循环体结束的时候才来判断条件。也就是说,无论如何,循环体都会至少执行一遍,然后再来判断条件。
与while循环相同的是,条件满足时执行循环,条件不满足时结束循环
3.2 循环计算
小套路计算之前先保存原始的值,后面可能有用
//求平均数---------------------------------------------------------------- #include<stdio.h> int main(){ int num; int sum=0; int n=0; scanf("%d",&num); /*这个要先读一遍,否则将scanf写在循环体第一行,输入-1会在sum中-1*/ while (num != -1){ sum+=num; n++; scanf("%d",&num); } double average=1.0*sum/n; printf("%f\n",average); return 0; } //猜数游戏-------------------------------------------------------------------- #include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ srand(time(0)); int num=rand()%100+1; //生成一个随机数,%100即得到一个0-99的数字 int count=0; int b; printf("告诉我你猜的1-100之间的数字"); do{ scanf("%d",&b); count++; if (b>num){ printf("猜的数字大了!告诉我你猜的:"); }else if(b<num){ printf("猜的数字小了!告诉我你猜的:"); } }while(num!=b); printf("\n***恭喜你,猜对了!***\n*** 一共猜了%d次 ***",count); //逆序的整数---------------------------------------------------------------- #include<stdio.h> int main(){ int num ; scanf("%d",&num); int a;//取每一位 700-->007 int ret=0;//结果 700-->7 do{ a=num%10; num=num/10; printf("%d",a); ret=ret*10+a; }while(num>0); printf("\n%d",ret); return 0; }
第三周编程题
1奇偶个数(5分)
题目内容:你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。输入格式:一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
输出格式:两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
输入样例: 9 3 4 2 5 7 -1
输出样例: 4 2
#include <stdio.h> int main() { int i; int ji = 0, ou = 0; scanf("%d", &i); while( i != -1){ if( i%2 == 0){ ou = ou + 1; }else{ ji = ji + 1; } scanf("%d", &i); } printf("%d %d", ji, ou); }
2数字特征值(5分)
题目内容:对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。这里的计算可以用下面的表格来表示:
数字 | 3 | 4 | 2 | 3 | 1 | 5 |
---|---|---|---|---|---|---|
数位 | 6 | 5 | 4 | 3 | 2 | 1 |
数字奇偶 | 奇 | 偶 | 偶 | 奇 | 奇 | 奇 |
数位奇偶 | 偶 | 奇 | 偶 | 奇 | 偶 | 奇 |
奇偶一致 | 0 | 0 | 1 | 1 | 0 | 1 |
二进制位值 | 32 | 16 | 8 | 4 | 2 | 1 |
你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。
提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。
输入格式:一个非负整数,整数的范围是[0,100000]。
输出格式:一个整数,表示计算结果。
输入样例: 342315
输出样例: 13
#include <stdio.h> int main() { int num, sum;//计数和输出 int i, j=1; //记录数字和数位 int n=1; //二进制位值 scanf("%d", &num); while (num > 0){ i = num % 10; if( i%2 == j%2 ){ sum = sum + n; } n = n * 2; j = j + 1; num = num/10; } printf("%d",sum); }
相关文章推荐
- 网易云课堂程序设计入门—C语言第四周 循环控制学习笔记
- C语言学习笔记:08_循环结构
- C语言学习笔记 lesson12 循环
- 【学习笔记】【C语言】循环结构-while
- c语言学习笔记之顺序,选择,循环结构
- 网易云课堂程序设计入门—C语言第六周 数组学习笔记
- c语言学习笔记10之for 循环
- 【学习笔记】【C语言】循环结构-for
- [黑马程序员]09[C语言]循环控制语句部分学习笔记总结
- 【达内C++学习培训学习笔记系列】C语言之三循环语句和数组
- 网易云课堂程序设计入门—C语言第五周 函数学习笔记
- 【学习笔记】【C语言】循环结构-do while
- C语言学习笔记-5.循环结构程序设计
- C语言学习笔记(七)--循环程序设计
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- Python 条件和循环学习笔记(一)
- Dotnet_c#循环学习笔记_01_Panel控件
- c语言学习零碎整理(11):怎样通过判断按键退出循环
- C语言学习笔记0
- C语言学习笔记(三)——条件表达式