目录
exe2:输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数。
exe3:练习题:输入一个年龄,>=18岁就输出成年,否则就输出未成年。
exe4:输入一个年龄,>=18岁:输出多少岁成年和多少岁可以开车,否则就输出:多少岁未成年和多少岁不可以开车。
exe5:输入一个整数,判断输入的整数是0,还是正数或者负数。
exe6:(嵌套在if下)输入一个整数,如果是正数,判断是奇数还是偶数,输出结果。若不是正数输出:非正数。
C语言:结构化的程序设计语言,结构指:顺序结构、选择结构(if 、switch)、循环结构(for、while、do while)。
1.if语句
1.1 if
if语句的语法形式:
if ( 表达式 )
语句
表达式成立(真-非0),执行语句,表达式不成立(假-0),不执行语句。
例如1:
exe1:输入一个整数,判断是否为奇数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num;//先有一个整型变量
printf("输入一个整数:");
scanf("%d", &num);//scanf() 处理用户的输入
//判断并输出
if (num % 2 == 1) {
printf("%d是奇数\n", num);
} //余数为1、3、5、7、9是奇数
return 0;
}
执行流程图:
1.2 else
if…else…语句的语法形式:
if( 表达式 )
语句1;
else
语句2;
exe2:输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num;//先有一个整型变量
printf("输入一个整数:");
scanf("%d", &num);//scanf() 处理用户的输入
//判断并输出
if (num % 2 == 1) {
printf("%d是奇数\n", num);
}
else {
printf("%d是偶数\n", num);
}
return 0;
}
运行结果图:
exe3:练习题:输入一个年龄,>=18岁就输出成年,否则就输出未成年。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int age = 0;
printf("输入年龄:", age);
scanf("%d", &age);
if (age >= 18)
printf("成年\n");
else
printf("未成年\n");
return 0;
}
运行结果图:
1.3 分支语句中包含多条语句
注意:默认情况下,if和else的后边只能跟一条语句。若要跟多条语句,可以使用{ }。
if else多条语句的语法形式:
if( 表达式 ){
语句1;
语句2;
}
else{
语句3;
语句4;
}
exe4:输入一个年龄,>=18岁:输出多少岁成年和多少岁可以开车,否则就输出:多少岁未成年和多少岁不可以开车。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int age = 0;
printf("输入年龄:", age);
scanf("%d", &age);
if (age >= 18) {
printf("%d岁成年\n",age);
printf("%d岁可以开车\n", age);
}
else {
printf("%d岁未成年\n", age);
printf("%d岁不可以开车\n", age);
}
return 0;
}
运行结果图:
1.4 if嵌套
if else语句中,else可以与另一个if语句连用,构成多重判断。
if( 表达式 )
语句1;
else if
语句2;
else
exe5:输入一个整数,判断输入的整数是0,还是正数或者负数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num = 0;
printf("输入一个整数:", num);
scanf("%d", &num);
if (num == 0) {
printf("输入的整数是0\n", num);
}
else if (num > 0)
{
printf("输入的%d是正数\n", num);
}
else {
printf("输入的%d是负数\n", num);
}
return 0;
}
运行结果图:
exe6:(嵌套在if下)输入一个整数,如果是正数,判断是奇数还是偶数,输出结果。若不是正数输出:非正数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int num = 0;
printf("输入一个整数:",num);
scanf("%d", &num);
if (num > 0)
{
if (num % 2 == 1)
printf("输入的整数%d是奇数", num);
else
printf("输入的整数%d是偶数", num);
}
else
printf("输入的整数%d是非正数", num);
return 0;
}
运行结果:
同理,也可以嵌套在else下。
exe7:(嵌套在else下)输入一个人的年龄,如果年龄<18岁,打印"少年";如果年龄18-44岁,打印"青年";如果年龄45-59岁,打印"中老年";如果年龄60-89岁,打印"老年";如果年龄在90岁以上,打印"寿星"。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int age = 0;
printf("输入一个年龄:", age);
scanf("%d", &age);
if (age < 18)
printf("%d是少年\n", age);
else {
if (age <= 44)
printf("%d是青年\n", age);
else {
if(age<=59)
printf("%d是中老年\n", age);
else {
if(age>=89)
printf("%d是老年\n", age);
else
printf("%d是寿星\n", age);
}
}
}
return 0;
}
代码运行结果:
1.5悬空的else问题
如果有多个if和else,注意:else总是跟最接近的if匹配。
exe8:else总是跟最接近的if匹配
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("nihao\n");
else
printf("heihei\n");
return 0;
}
else总是跟最接近的if匹配。解析:if(a==1)判断a,a不等于1,所以无法进入下一个if else语句中,所以无法输出结果。
若想输出heihei,可以在第一个if下加入{ }。
因为if下加入{ },所以else总是跟最接近的if匹配的规则不遵循,判断a,a不等于1。进行else语句,输出heihei。