实验2
实验任务1
问题1:根据时间生成随机数
问题2:根据时间生成以20256136开头的,后4位随机的(不足的地方用0补足的)12为随机数
实验任务2
问题1:程序在多次运行时总价格会叠加
问题2:使程序while循环从头开始运行
实验任务3
源代码

1 #include<stdio.h> 2 int main(){ 3 char a; 4 while (1){ 5 6 a=getchar(); 7 if (a==EOF){break;} 8 if (a=='r'){printf("stop!\n");} 9 else if (a=='g'){printf("go go go\n");} 10 else if (a=='y'){printf("wait a minute\n");} 11 else {printf("something must be wrong...\n");} 12 getchar(); 13 } 14 return 0; 15 }
编译结果
实验任务4
源代码

1 #include <stdio.h> 2 int main() 3 {double a,b=0,c=20001,d=0; 4 printf("请输入今日开销,直到输入-1终止\n"); 5 while(1) { 6 scanf("%lf",&a); 7 if(a==-1) {break;} 8 b+=a; 9 if(c>a){c=a;} 10 if(d<a){d=a;}} 11 printf("今日累计消费总额:%.1lf\n",b); 12 printf("今日最高一笔开销%.1lf\n",d); 13 printf("今日最低一笔开销%.1lf\n",c); 14 return 0;}
编译结果
实验任务5
源代码

1 #include<math.h> 2 #include<stdio.h> 3 #include<stdlib.h> 4 int main() 5 {int a,b,c,d[3],i,j,t; 6 while(1) 7 {if(scanf("%d",&d[0])==EOF) {break;} 8 scanf(" %d %d",&d[1],&d[2]); 9 for (i = 0; i < 2; i++) 10 for (j = 0; j < 2 - i; j++) 11 {if (d[j] > d[j + 1]) 12 {t = d[j]; 13 d[j] = d[j + 1]; 14 d[j + 1] = t;}} 15 a=d[2];b=d[1];c=d[0]; 16 if(a+c>b && a+b>c && c+b>a) { 17 if (pow(c,2) + pow(b,2) == pow(a,2)) {printf("直角三角形\n");} 18 else if (a==b||a==c||b==c) 19 {if(a==b&&b==c){printf("等边三角形\n");} 20 else{printf("等腰三角形\n");}} 21 else{printf("普通三角形\n");};} 22 else{printf("不能构成三角形\n");}} 23 return 0;}
编译结果
实验任务6
源代码

1 #include <ctype.h> 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include <time.h> 5 int main() { 6 int a,b,i; 7 srand(time(NULL)); 8 a = rand() % 30 + 1; 9 printf("猜猜2025年11月那一天是你的lucky day\n"); 10 printf("开始喽,你有三次机会,猜吧(1~30):"); 11 for (i = 0; i < 3; i++) { 12 scanf("%d",&b); 13 if (b==a){printf("哇,猜中了\n");break;} 14 else if(b>a) 15 {printf("你猜的日期晚了,你的lucky day在前面哦\n");} 16 else 17 {printf("你猜的日期早了,你的lucky day还没到呢\n");} 18 printf("再猜(1~30):"); 19 } 20 return 0; 21 }
编译结果