实验任务2

实验任务1

问题1:代码 srand(time(NULL));以系统时间作为随机数种子来生成随机数,生成学号后四位,去掉之后生成的学号是固定的。
问题2:这个代码的功能是限定数字范围,取用系统时间作为种子,生成五个随机数,并和两个专业班学生的学号前缀组成学号,达到抽取随机五个人的目的。
 
实验任务2
问题1:如果去掉total_price = 0;第一次购买结果运行没问题,但之后的运行就出现错误,原因是将之前的总价累计了,没有在结束购买后归零。
问题2:第一处continue是在选择不是菜单中的饮料后结束该次循环,不运行后续代码,进入下一次循环。第二处continue是购买数量如果为负数就结束本次循环,进入下一次循环。
 
实验任务3
 1 #include<stdio.h>
 2 int main(){
 3     int d;
 4     while((d=getchar())!=EOF){
 5     if(d=='r'){
 6         printf("stop!\n");
 7     }
 8     else if(d=='g'){
 9         printf("go go go\n");
10     }
11     else if(d=='y'){
12         printf("wait a minute\n");
13     }
14     else{
15     printf("something must be wrong\n");    
16     }
17     getchar();
18     }
19     return 0;
20 } 
实验任务3

屏幕截图 2025-10-14 221807

实验任务4

 1 #include <stdio.h>
 2 int main() {
 3     float kx;
 4     float total = 0.0;
 5     float max_kx = 0.0;
 6     float min_kx = 0.0;
 7     int i = 1; 
 8     printf("输入今日开销,直到输入-1终止:\n");
 9     while (1) {
10         scanf("%f", &kx);
11         if (kx == -1) {
12             break;
13         }
14         if (kx <= 0 || kx > 20000) {
15             continue;
16         }
17         total += kx;
18         if (i) {
19             max_kx = kx;
20             min_kx = kx;
21             i = 0;
22         } 
23         else {
24         if (kx > max_kx) {
25             max_kx = kx;
26         }
27         if (kx < min_kx) {
28             min_kx = kx;
29         }
30         }
31     }
32     printf("今日累计消费总额:%.1f\n", total);
33     printf("今日最高一笔开销:%.1f\n", max_kx);
34     printf("今日最低一笔开销:%.1f\n", min_kx);
35     return 0;
36 }
实验任务4

屏幕截图 2025-10-14 224212

实验任务5

 1 #include <stdio.h>
 2 int main() {
 3     int a, b, c;
 4     while ((scanf("%d %d %d", &a, &b, &c))!= EOF) {
 5         if ((a+b>c)&&(a+c>b)&&(b+c>a)) {
 6             if (a==b&&b==c&&a==c) {
 7             printf("等边三角形\n");
 8             }
 9             else if (a==b||a==c||b==c) {
10                 if ((a * a + b * b == c * c) || (a * a + c * c == b * b) || (b * b + c * c == a * a)) {
11                     printf("等腰直角三角形\n");
12                 } else {
13                     printf("等腰三角形\n");
14                 }
15             }
16             else if ((a * a + b * b == c * c) || (a * a + c * c == b * b) || (b * b + c * c == a * a)) {
17                 printf("直角三角形\n");
18             }
19             else {
20                 printf("普通三角形\n");
21             }
22         } 
23         else {
24             printf("不能构成三角形\n");
25         }
26     }
27     return 0;
28 }
实验任务5

 屏幕截图 2025-10-18 115431

实验任务6

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 int main(){
 5     srand(time(NULL));
 6     int luckyDay=rand() % 30 + 1;
 7     int guess=0;
 8     int count;
 9     printf("猜猜2025年11月哪一天是你的lucky day\n");
10     for(count=0;count<3;count++){
11         if(count==0){
12             printf("\n开始喽,你有三次机会,猜吧(1~30):");
13         }
14         else{
15             printf("\n再猜(1~30): ");
16         }
17         scanf("%d",&guess);
18         if(guess==luckyDay){
19         printf("\n哇,猜中了:)\n");
20         break;    
21         }
22         else if(guess>luckyDay){
23         printf("\n你猜的日期晚了,你的lucky day在前面哦\n");    
24         }
25         else{
26         printf("\n你猜的日期早了,你的lucky day还没到呢\n");
27         }
28     }
29     if(count==3)
30     {
31         printf("\n次数用光啦。偷偷告诉你,11月你的lucky day是%d号\n", luckyDay);
32     }
33 return 0;    
34 }
实验任务6

屏幕截图 2025-10-18 132826

屏幕截图 2025-10-18 133042

 

posted on 2025-10-14 18:00  付付付尾  阅读(2)  评论(0)    收藏  举报