目录
前言
ChatGPT
三、分支程序设计
3.1 判断成绩是否及格——双分支程序设计
双分支程序设计是一种基本的条件控制结构,用于根据条件结果执行不同的代码路径。在C语言中,可以使用if-else语句实现双分支程序设计来判断学生成绩是否及格。如果学生成绩达到及格标准,执行一组代码;否则,执行另一组代码。
#include <stdio.h>
int main() {
int score = 75;
if (score >= 60) {
printf("成绩及格\n");
} else {
printf("成绩不及格\n");
}
return 0;
}
输出:
成绩及格
3.2 成绩加上获奖信息—单分支程序设计
单分支程序设计是另一种条件控制结构,用于根据条件结果执行不同的代码路径。在这种情况下,可以使用单分支程序设计来判断学生成绩,并在成绩达到一定条件时添加获奖信息。如果学生成绩满足特定标准,可以执行一组代码来添加获奖信息。
#include <stdio.h>
int main() {
int score;
char award;
printf("请输入成绩:");
scanf("%d", &score);
getchar(); // 消耗输入缓冲区中的换行符
printf("请输入获奖信息:");
scanf("%c", &award);
if (award == 'Y') {
score += 10;
}
printf("最终得分:%d\n", score);
return 0;
}
输出:
3.3 逻辑判断——布尔类型
C语言中的逻辑判断可以使用布尔类型来表示。在C语言中,布尔类型的值可以是true或false。C语言中没有内置的布尔类型,但可以使用整数类型来表示布尔值,其中0表示false,非零值表示true。
#include <stdbool.h>
#include <stdio.h>
int main() {
bool isTrue = true;
if (isTrue) {
printf("条件为真\n");
} else {
printf("条件为假\n");
}
return 0;
}
输出:
条件为真
3.4 获奖分等级——多分支程序设计
多分支程序设计是一种条件控制结构,用于根据不同的条件结果执行不同的代码路径。在C语言中,可以使用if-else if-else语句实现多分支程序设计,根据获奖分数的不同等级执行相应的代码。
#include <stdio.h>
int main() {
int score = 75;
if (score >= 90) {
printf("一等奖\n");
} else if (score >= 80) {
printf("二等奖\n");
} else if (score >= 70) {
printf("三等奖\n");
} else {
printf("未获奖\n");
}
return 0;
}
3.5 表示汽车种类——枚举类型
枚举类型是一种特殊的数据类型,用于定义一组具名的常量值。在表示汽车种类的情况下,可以使用枚举类型来定义不同的汽车种类并为其分配特定的常量值。这样可以在程序中使用这些枚举值来表示不同的汽车种类,并进行相应的操作或判断。
#include <stdio.h>
int main() {
enum CarType {
SEDAN,
SUV,
HATCHBACK
};
enum CarType myCar = SUV;
if (myCar == SUV) {
printf("这辆车是SUV类型\n");
}
}
3.6 例题
3.6.1 例题——判断某个年份是否闰年
#include <stdio.h>
int main() {
int year;
printf("请输入年份: ");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
printf("%d年是闰年\n", year);
} else {
printf("%d年不是闰年\n", year);
}
return 0;
}
3.6.2 例题——求一元二次方程根
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double discriminant, realPart, imaginaryPart;
printf("请输入一元二次方程的系数:\n");
printf("a: ");
scanf("%lf", &a);
printf("b: ");
scanf("%lf", &b);
printf("c: ");
scanf("%lf", &c);
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
// 有两个实数根
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的根为:%.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
// 有一个实数根
double root = -b / (2 * a);
printf("方程的根为:%.2lf\n", root);
} else {
// 有两个虚数根
realPart = -b / (2 * a);
imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程的根为:%.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}