3.2.4、计算输入数字的平方根
程序计算输入数字的平方根的代码如下所示
/// <summary> /// 计算输入数字的平方根 /// </summary> /// <returns></returns> k = sqrt(digit);
3.2.5、输出输入数字的平方根的结果
程序输出输入数字的平方根的结果的代码如下所示
/// <summary> /// 输出输入数字的平方根的结果 /// </summary> /// <returns></returns> printf("%d的平方根是:%d\n", digit, k);
3.2.6、求小于1000正数的平方根的运行结果如下所示
3.3、选择结构程序设计实验题目3:百分制等级输出
(3) 给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。
- 90分以上为A
- 81〜89分为B
- 70-79分为C
- 60-69分为D
- 60分以下为E。
- ①事先编好程序,要求分别用if语句和switch语句来实现。运行程序,并检查结果是否正确。
- ②再运行一次程序,输入分数为负值(如
-70
):这显然是输入时出错
,不应给出等级, 修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错”
,程序结束。
3.3.1、定义变量
程序定义变量的代码如下所示
// 定义变量 float score; char grade;
3.3.2、 输入学生的成绩
程序输入学生的成绩的代码如下所示
/// <summary> /// 输入学生的成绩 /// </summary> /// <returns></returns> printf("请输入学生成绩:"); scanf("%f", &score);
3.3.3、 判断成绩输入是否有误
程序判断成绩输入是否有误的代码如下所示
/// <summary> /// 判断成绩输入是否有误 /// </summary> /// <returns></returns> while (score > 100 || score < 0) { printf("\n输入有误,请重输"); scanf("%f", &score); }
3.3.4、计算学生的成绩等级
程序计算学生的成绩等级的代码如下所示
/// <summary> /// 计算学生的成绩等级 /// </summary> /// <returns></returns> switch ((int)(score / 10)) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; case 5: case 4: case 3: case 2: case 1: case 0: grade = 'E'; }
3.3.5、 输出学生的成绩与学生等级
程序 输出学生的成绩与学生等级的代码如下所示
/// <summary> /// 输出学生的成绩与学生等级 /// </summary> /// <returns></returns> printf("成绩是%5.1f, 相应的等级是%c。\n", score, grade);
3.3.6、实验三的百分制等级输出运行结果
实验三的百分制等级输出运行结果如下所示
- 输入为0-100范围的运行结果
- 输入为0-100范围外的运行结果
3.4、选择结构程序设计实验题目4:四个整数的顺序输出
3.4.1、定义变量
程序定义变量的代码如下所示
/// <summary> /// 定义变量 /// </summary> /// <returns></returns> int t, a, b, c, d;
3.4.2、输入四个数字
程序输入四个数字的代码如下所示
/// <summary> /// 输入四个数字 /// </summary> /// <returns></returns> printf("请输入4个数∶"); scanf("%d%d%d%d", &a, &b, &c, &d);
3.4.3、输出输入的四个数字
程序输出输入的四个数字的代码如下所示
/// <summary> /// 输出输入的四个数字 /// </summary> /// <returns></returns> printf("\n输入4个数是∶a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);
(4) 输入4个整数,要求按由小到大顺序输出。
3.4.4、用选择结构对输入的四个数字进行从小到大的排序
程序用选择结构对输入的四个数字进行从小到大的排序的代码如下所示
/// <summary> /// 用选择结构对输入的四个数字进行从小到大的排序 /// </summary> /// <returns></returns> if (a > b) { t = a; a = b; b = t; } if (a > c) { t = a; a = c; c = t; } if (a > d) { t = a; a = d; d = t; } if (b > c) { t = b; b = c; c = t; } if (b > d) { t = b; b = d; d = t; } if (c > d) { t = c; c = d; d = t; }
3.4.5、输出“输入的四个数字”从小到大的排序结果
程序输出“输入的四个数字”从小到大的排序结果的代码如下所示
/// <summary> /// 输出“输入的四个数字”从小到大的排序结果 /// </summary> /// <returns></returns> printf("\n四个数字从小到大的排序的结果是∶ "); printf("%d %d %d %d \n", a, b, c, d);
3.4.6、输出“输入的四个数字”从小到大的排序结果的运行结果
程序输出“输入的四个数字”从小到大的排序结果的运行结果如下所示
- 在得到正确结果后,修改程序使之按由大到小顺序输出
3.4.7、用选择结构对输入的四个数字进行从大到小的排序
程序用选择结构对输入的四个数字进行从大到小的排序的代码如下所示
/// <summary> /// 用选择结构对输入的四个数字进行从大到小的排序 /// </summary> /// <returns></returns> if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (a < d) { t = a; a = d; d = t; } if (b < c) { t = b; b = c; c = t; } if (b < d) { t = b; b = d; d = t; } if (c < d) { t = c; c = d; d = t; }
3.4.8、输出“输入的四个数字”从大到小的排序结果
程序输出“输入的四个数字”从大到小的排序结果的代码如下所示
/// <summary> /// 输出“输入的四个数字”从大到小的排序结果 /// </summary> /// <returns></returns> printf("\n四个数字从大到小的排序的结果是∶ "); printf("%d %d %d %d \n", a, b, c, d);
3.4.9、输出“输入的四个数字”从大到小的排序结果运行结果
程序输出“输入的四个数字”从大到小的排序结果运行结果如下
四、实验总结
本次通过C语言及算法设计课程实验四:选择结构程序设计,掌握了如下几点。
(1) 了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
(2) 学会正确使用逻辑运算符和逻辑表达式。
(3) 熟练掌握if语句的使用(包括if语句的嵌套)。
(4) 熟练掌握多分支选择语句——switch语句。
(5) 结合程序掌握一些简单的算法。
(6) 进一步学习调试程序的方法。
五、实验完整代码
5.1、选择结构程序设计实验题目1:根据x的分段函数求对于的y值的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int main() { /// <summary> /// 定义变量 /// </summary> /// <returns></returns> int x, y; /// <summary> /// 输入函数自变量的值 /// </summary> /// <returns></returns> printf("输入x:"); scanf("%d", &x); if (x < 1) // x<1 { // 计算函数因变量的值 y = x; // 输出函数因变量的值 printf("x=%3d, y=x=%d\n", x, y); } else if (x < 10) // 1=<x<10 { // 计算函数因变量的值 y = 2 * x - 1; // 输出函数因变量的值 printf("x=%d, y=2*x-1=%d\n", x, y); } else // x> = 10 { // 计算函数因变量的值 y = 3 * x - 10; // 输出函数因变量的值 printf("x=%d, y=3*x-10=%d\n", x, y); } return 0; }
5.2、选择结构程序设计实验题目2:求小于1000正数的平方根的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> // 定义宏 #define M 1000 int main() { /// <summary> /// 定义变量 /// </summary> /// <returns></returns> int digit, k; /// <summary> /// 输入一个小于1000的整数 /// </summary> /// <returns></returns> printf("请输入一个小于%d的整数digit: ", M); scanf("%d", &digit); /// <summary> /// 输入大于1000, 则从新输入一个整数 /// </summary> /// <returns></returns> while (digit > M) { printf("输人的数据不符合要求,请重新输入一个小于%d的整数digit: ", M); scanf("%d", &digit); } /// <summary> /// 计算输入数字的平方根 /// </summary> /// <returns></returns> k = sqrt(digit); /// <summary> /// 输出输入数字的平方根的结果 /// </summary> /// <returns></returns> printf("%d的平方根是:%d\n", digit, k); return 0; }
5.3、选择结构程序设计实验题目3:百分制等级输出的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int main() { // 定义变量 float score; char grade; /// <summary> /// 输入学生的成绩 /// </summary> /// <returns></returns> printf("请输入学生成绩:"); scanf("%f", &score); /// <summary> /// 判断成绩输入是否有误 /// </summary> /// <returns></returns> while (score > 100 || score < 0) { printf("\n输入有误,请重输"); scanf("%f", &score); } /// <summary> /// 计算学生的成绩等级 /// </summary> /// <returns></returns> switch ((int)(score / 10)) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; case 5: case 4: case 3: case 2: case 1: case 0: grade = 'E'; } /// <summary> /// 输出学生的成绩与学生等级 /// </summary> /// <returns></returns> printf("成绩是%5.1f, 相应的等级是%c。\n", score, grade); return 0; }
5.4、选择结构程序设计实验题目4:四个整数的顺序输出的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> // 定义宏 #define M 1000 int main() { /// <summary> /// 定义变量 /// </summary> /// <returns></returns> int t, a, b, c, d; /// <summary> /// 输入四个数字 /// </summary> /// <returns></returns> printf("请输入4个数∶"); scanf("%d%d%d%d", &a, &b, &c, &d); /// <summary> /// 输出输入的四个数字 /// </summary> /// <returns></returns> printf("\n输入4个数是∶a=%d, b=%d, c=%d, d=%d\n", a, b, c, d); /*/// <summary> /// 用选择结构对输入的四个数字进行从小到大的排序 /// </summary> /// <returns></returns> if (a > b) { t = a; a = b; b = t; } if (a > c) { t = a; a = c; c = t; } if (a > d) { t = a; a = d; d = t; } if (b > c) { t = b; b = c; c = t; } if (b > d) { t = b; b = d; d = t; } if (c > d) { t = c; c = d; d = t; } /// <summary> /// 输出“输入的四个数字”从小到大的排序结果 /// </summary> /// <returns></returns> printf("\n四个数字从小到大的排序的结果是∶ "); printf("%d %d %d %d \n", a, b, c, d);*/ /// <summary> /// 用选择结构对输入的四个数字进行从大到小的排序 /// </summary> /// <returns></returns> if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (a < d) { t = a; a = d; d = t; } if (b < c) { t = b; b = c; c = t; } if (b < d) { t = b; b = d; d = t; } if (c < d) { t = c; c = d; d = t; } /// <summary> /// 输出“输入的四个数字”从大到小的排序结果 /// </summary> /// <returns></returns> printf("\n四个数字从大到小的排序的结果是∶ "); printf("%d %d %d %d \n", a, b, c, d); return 0; }