实验2
任务1
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 5 #define N 5 6 #define N1 397 7 #define N2 476 8 #define N3 21 9 10 int main(){ 11 int cnt; 12 int random_major,random_no; 13 14 srand(time(NULL)); //以当前系统时间作为随机种子 15 16 cnt = 0; 17 while(cnt<N){ 18 random_major = rand()%2; 19 20 if(random_major){ 21 random_no = rand()%(N2-N1+1)+N1; 22 printf("20248329%04d\n",random_no); 23 } 24 else{ 25 random_no = rand()%N3+1; 26 printf("20248395%04d\n",random_no); 27 } 28 29 cnt++; 30 } 31 32 return 0; 33 }
问题1:限制输出的随机数在班内同学的学号范围内
问题2:限制输出的随机数在班内奇安信同学的学号范围内
问题3:按照学号随机抽取四个班内的同学
任务2
1 // 一元二次方程求解 2 3 #include<stdio.h> 4 #include<math.h> 5 6 int main(){ 7 double a,b,c; 8 double delta,p1,p2;// 用于保存中间计算结果 9 10 while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){ 11 if(a==0){ 12 printf("a=0,invanlid input\n"); 13 continue; 14 } 15 16 delta=b*b-4*a*c; 17 p1=-b/2/a; 18 p2=sqrt(fabs(delta))/2/a; 19 20 if(delta==0) 21 printf("x1 = x2 = %.2g\n",p1); 22 else if(delta>0) 23 printf("x1 = %.2g,x2 = %.2g\n",p1+p2,p1-p2); 24 else{ 25 printf("x1 = %.2g+%.2gi,",p1,p2); 26 printf("x2 = %.2g-%.2gi\n",p1,p2); 27 } 28 } 29 30 return 0; 31 }
任务3
1 #include<stdio.h> 2 3 int main(){ 4 char colour; 5 while(scanf("%c",&colour)!=EOF) 6 { 7 if(colour=='r') 8 printf("stop!\n"); 9 else if(colour=='g') 10 printf("go go go\n"); 11 else if(colour=='y') 12 printf("wait a minute\n"); 13 else 14 printf("something must be wrong…\n"); 15 getchar(); 16 } 17 return 0; 18 }
任务4
1 #include <stdio.h> 2 int main() 3 { 4 double a,max,min,all; 5 all=0; 6 max=0; 7 min=20000; 8 printf("输入今日开销,直到输入-1终止:\n"); 9 while(1) 10 {scanf("%lf",&a); 11 if(a==-1) 12 break; 13 if(a>max) 14 max=a; 15 if(a<min) 16 min=a; 17 all+=a; 18 } 19 printf("今天累计消费总额:%.1lf\n",all); 20 printf("今日最高一笔开销:%.1lf\n",max); 21 printf("今天最低一笔开销:%.1lf\n",min); 22 return 0; 23 24 }
任务5
1 #include<stdio.h> 2 3 int main(){ 4 int a,b,c; 5 while(scanf("%d%d%d",&a,&b,&c)!=EOF) 6 { 7 if(a+b<=c||a+c<=b||b+c<=a) 8 printf("不能构成三角形\n"); 9 else 10 { 11 if(a==b&&b==c&&a==c) 12 printf("等边三角形\n"); 13 else if(a==b||b==c||a==c) 14 printf("等腰三角形\n"); 15 else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b) 16 printf("直角三角形\n"); 17 else 18 printf("普通三角形\n"); 19 } 20 } 21 return 0; 22 }
任务6
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 5 int main() 6 { 7 double cnt,a,b; 8 cnt=3; 9 a=15; 10 11 printf("猜猜2024年11月哪一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~30):"); 12 srand(time(NULL)); 13 a=rand()%31+1; 14 15 while(cnt) 16 { 17 scanf("%lf",&b); 18 if(a==b) 19 { 20 printf("哇,猜中了:"); 21 continue;} 22 else if(b>a) 23 printf("你猜的日期晚了,你的lucky day在前面哦\n"); 24 else 25 printf("你猜的日期早了,你的lucky day在后面哦\n"); 26 27 cnt=cnt-1; 28 if(cnt!=0) 29 printf("再猜(1~30):"); 30 } 31 printf("次数用完了,偷偷告诉你,11月你的lucky day是%.lf号",a); 32 return 0; 33 }