实验任务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 }
实验任务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 }
实验任务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 }
实验任务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 }