- 实验名称
实验二 选择结构程序设计
- 实验目的
(1)掌握关系运算符和逻辑运算符的使用方法,能够表达复杂的逻辑条件。
(2)掌握if语句的使用方法,掌握多重条件下的if语句嵌套使用。
(3)掌握switch语句的用法。
- 实验题目
- 输入一个5位数,判断它是不是回文数(即12321是回文数,个位与万位相同,十位与千位相同)
- 输入三角形的3条边a、b、c,判断它们能否构成三角形。若能构成三角形,求出三角形的面积。(s=a+b+c2,三角形面积area=s(s-a)(s-b)(s-c) )
- 输入4个整数,要求按从小到大的顺序输出。
- 输入任意一个1~7之间的整数,将它们转换成对应的表示星期几的英文单词。例如:1转换成Monday,7转换成Sunday。
- 编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(用switch语句实现)。
- 实验环境
硬件:个人电脑;软件:Visual C++ 6.0
- 实验代码及结果(程序运行结果请以截屏图给出)
- 源程序代码:
#include <stdio.h> #include <stdbool.h> bool isPalindrome(int num) { // 提取万位数字 int tenThousands = num / 10000; // 提取千位数字 int thousands = (num / 1000) % 10; // 提取十位数字 int tens = (num / 10) % 10; // 提取个位数字 int ones = num % 10; // 比较相应位置上的数字是否相同 if (tenThousands == ones && thousands == tens) return true; else return false; } int main() { int num; printf("请输入一个5位数: "); scanf("%d", &num); // 判断输入的数字是否是回文数 if (isPalindrome(num)) printf("%d 是回文数\n", num); else printf("%d 不是回文数\n", num); return 0; } |
运行结果为:
- 源程序代码:
#include <stdio.h> #include <math.h> #include <stdbool.h> bool judge(double a, double b, double c) // 判断输入的三条边能否构成三角形 { return (a + b > c) && (a + c > b) && (b + c > a); } double count(double a, double b, double c) // 计算三角形的面积 { double s = (a + b + c) / 2.0; return sqrt(s * (s - a) * (s - b) * (s - c)); } int main() { double a, b, c; printf("请输入三角形的三条边: "); scanf("%lf %lf %lf", &a, &b, &c); if (judge(a, b, c)) { double area = count(a, b, c); printf("这三条边能构成三角形,其面积为: %.2lf\n", area); } else printf("这三条边不能构成三角形!\n"); return 0; } |
运行结果为:
- 源程序代码:
#include <stdio.h>
// 冒泡排序函数,用于对数组进行升序排序 void Sort(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { // 交换arr[j]和arr[j+1] int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } }
int main() { int numbers[4];
printf("请输入4个整数: "); for (int i = 0; i < 4; i++) scanf("%d", &numbers[i]);
// 对输入的4个整数进行排序 Sort(numbers, 4);
// 输出排序后的结果 printf("排序后的结果为: "); for (int i = 0; i < 4; i++) printf("%d ", numbers[i]);
return 0; } |
运行结果为:
- 源程序代码:
#include <stdio.h> int main() { int dayNumber; printf("请输入1~7之间的整数(代表星期一到星期日): "); scanf("%d", &dayNumber); switch (dayNumber) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n"); break; case 4: printf("Thursday\n"); break; case 5: printf("Friday\n"); break; case 6: printf("Saturday\n"); break; case 7: printf("Sunday\n"); break; default: printf("输入无效,请输入1~7之间的整数。\n"); break; } return 0; } |
运行结果为:
- 源程序代码:
#include <stdio.h> int main() { double data1, data2, result; char op; printf("请输入第一个操作数、运算符(+, -, *, /)和第二个操作数:\n "); scanf("%lf %c %lf", &data1, &op, &data2); switch (op) { case '+': result = data1 + data2; break; case '-': result = data1 - data2; break; case '*': result = data1 * data2; break; case '/': result = data1 / data2; break; default: printf("错误:无效的运算符。\n"); return 1; } printf("结果是: %.2lf\n", result); return 0; } |
运行结果为: