一、今日目标
1.学习第七章
2.完成相关课后练习题
二、学习收获
1.if语句
if语句被称为分支语句或选择语句,他提供一个交汇点
if(expression)
statement
若expression为真,则执行statement
在这里插入代码片#include<stdio.h>
int main()
{
const int FR=0;
float tem;
int cold_days=0;
int all_days=0;
printf("请输入最低温度:\n");
printf("输入q停止:\n");
while(scanf("%f",&tem)==1)
{
all_days++;
if(tem<FR)
cold_days++;
}
if(all_days!=0)
printf("%d days total:%.1f%% were below freezing.\n",all_days,100.0*(float)cold_days/all_days);
if(all_days==0)
printf("没有数据!\n");
return 0;
}
2.if else
形式:
if(expression)
statement1
else
statement2
a.若expression为真,则执行statement1,否则执行statement2.
b.编译器期望if和else之间只有一条语句(单条的或者复合的)如果希望在if和else之间有多条语句,则需使用花括号创建一个代码块,不然程序会以为后面的else没有归属的if。
3.getchar()和putchar()
#include<stdio.h>
#define SPACE ' '
int main()
{
char ch;
while((ch=getchar())!='\n')
{
if(ch==SPACE)
putchar(ch);
else
putchar(ch+1);
ch=getchar();
}
putchar(ch);
return 0;
}
4.多重选择使用 else if
5.如何把else与if配对
规则是如果没有花括号指明,else和它最接近的一个if相配
6.逻辑运算符
优先级:!运算符的优先级很高,它高于乘除,仅次于圆括号
&&运算符的优先级高于||
求值顺序:C保证逻辑表达式是从左到右求值。
&&和||运算符是序列的分界点,因此在程序从一个操作数进到下一个操作数之前,所有的副作用都会生效。而且,C保证一旦发现某个元素使表达式总体无效,求值立刻停止。
7.计算约数的例子
必须测试的数只要到num的平方根就可以了
#include<stdio.h>
#include<stdbool.h>
int main(void)
{
unsigned long num;
unsigned long div;
bool isPrime;
printf("请输入一个整数:\n");
printf("输入q结束:\n");
while(scanf("%lu",&num)==1)
{
for(div=2,isPrime=true;(div*div)<=num;div++)
{
if(num%div==0)
{if((div*div)!=num)
printf("%lu的约数是%lu和%lu.\n",num,div,num/div);
else
printf("%lu的约数是%lu\n.",num,div);
isPrime=false;
}
}
if(isPrime)
printf("%lu 是一个素数.\n",num);
printf("再次输入一个数\n");
}