今天学习了循环结构,分别是for,while,do...while,和goto 循环。这几个循环的结构和注意事项我都在图上展示了。goto循环及其少见,基本用不上了解就行。
当然学习新内容需要一些练习,我把我课上的练习都帖在这了:
1.计算1-100之间的和(这个很简单可以用任意循环做)
2.while循环实现输出a—b之间能被3与5整除,但不能被7整除的奇数。
注:a和b的大小不是固定的,可能a大,可能b大。
3.输入一个整数,while实现判断是几位数。
4.输入一个整数,while实现求各个数字之和。
5.输入n个数,当输入0结束循环,计算和(do...while做)
6.充话费,假设你欠了100元话费,你可以依次充入话费,并返回每次充值后的结果,直到话费余额大于0,则代表话费充值完毕。(do...while做)
7.有10位评委打分,分数在1-10之间,计算去掉最高分,最低分的平均值(for循环)
注:不能用数组,只能设置一个分数变量,不能设置10个,通过循环来实现。
课堂练习就是这些,我就不一一帖出代码了。下面是第二天的作业:
1.计算10个单字符的最大值
单字符用的是char类型,这题跟课堂练习的7题类似,只需要设置一个char类型的字符变量,通过10次循环比较出最大值,下面是代码:
#include <stdio.h>
int main(int argc, const char *argv[])
{
char a;
char max;
for(int i = 0; i < 10; i ++){
printf("请输入一个字符\n");
scanf("%c",&a);
getchar();
if(i == 0){
max = a;
continue;
}
if(max < a)
max = a;
}
printf("最大的字符是%c\n",max);
return 0;
}
结果如下:
2.日本发生命案,警察把嫌疑人确定在4人当中(a,b,c,d)
审讯结果:两个人说的真话,两个人说的假话
a: 罪犯在其他三个当中
B:人不是我杀的,是c杀的
c: a和d之间有一个是罪犯
d: b说的是事实
写一个代码,判断谁是罪犯
这题我百度了一下,是用的枚举法,依次设定谁是罪犯,然后对四个人说的话进行判断,如果结果只有一个人是罪犯(2真2假),那么确定该罪犯。下面是代码:
#include <stdio.h>
int main(int argc, const char *argv[])
{
char criminal;
for(criminal = 'A';criminal < 'E';criminal ++){
if((criminal != 'A')
+ (criminal == 'C')
+ (criminal == 'A'
|| criminal == 'D')
+ (criminal == 'C') == 2){
printf("罪犯是%c\n",criminal);
}
}
return 0;
}
结果如下: