实验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:解释line21代码 random_no = rand() % (N2 - N1 + 1) + N1; 的功能
在397-476间随机生成一个数字
问题2:解释line25代码 random_no = rand() % N3 + 1; 的功能
在1-21间随机生成一个数字
问题3:这个程序的功能是什么?
随机抽取5个学号
任务2
1 #include<stdio.h> 2 #include<math.h> 3 4 int main(){ 5 double a,b,c; 6 double delta, p1, p2; 7 8 while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){ 9 if(a==0){ 10 printf("a = 0, invalid input\n"); 11 continue; 12 } 13 14 delta=b*b-4*a*c; 15 p1=-b/2/a; 16 p2=sqrt(fabs(delta))/2/a; 17 18 if(delta==0) 19 printf("x1 = x2 = %.2g\n",p1); 20 else if(delta>0) 21 printf("x1=%.2g,x2=%.2g\n",p1+p2,p1-p2); 22 else{ 23 printf("x1=%.2g+%.2gi,",p1,p2); 24 printf("x2=%.2g-%.2gi\n",p1,p2); 25 } 26 } 27 28 return 0; 29 }
任务3
1 #include<stdio.h> 2 3 int main(){ 4 char t; 5 while(scanf("%c",&t)!=EOF){ 6 if(t=='r') 7 printf("stop!\n"); 8 else if(t=='g') 9 printf("go go go\n"); 10 else if(t=='y') 11 printf("wait a minute\n"); 12 else 13 printf("something must be wrong...\n"); 14 getchar(); 15 } 16 17 18 return 0; 19 }
任务4
1 #include<stdio.h> 2 3 int main(){ 4 double a,m=0,n=20000,s=0; 5 printf("输入今日开销,直到输入-1终止:\n"); 6 while(scanf("%lf",&a)!=EOF) { 7 if(a==-1) 8 break; 9 else{ 10 s=s+a; 11 if(a>m) 12 m=a; 13 if(a<n) 14 n=a;} 15 } 16 printf("今日累计消费总额:%.1lf\n",s); 17 printf("今日最高一笔开销:%.1lf\n",m); 18 printf("今日最低一笔开销:%.1lf\n",n); 19 20 return 0; 21 }
任务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 printf("不能构成三角形\n"); 7 else{ 8 if(a==b&&a==c&&b==c) 9 printf("等边三角形\n"); 10 else if(a==b||a==c||b==c) 11 printf("等腰三角形\n"); 12 else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) 13 printf("直角三角形\n"); 14 else 15 printf("普通三角形\n"); 16 } 17 } 18 return 0; 19 }
任务6
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(){ 4 int i=1,g; 5 int l=rand()%30+1; 6 7 printf("猜猜2024年11月哪一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~30):"); 8 while(i<4){ 9 i++; 10 scanf("%d",&g); 11 12 13 if(g<l){ 14 printf("你猜的日期早了,你的lucky day还没到呢\n"); 15 if(i==2||i==3){ 16 printf("再猜(1~30):");}} 17 18 else if(g>l){ 19 printf("你猜的日期晚了,你的lucky day在前面哦\n"); 20 if(i==2||i==3){ 21 printf("再猜(1~30):");}} 22 23 24 25 else{ 26 printf("哇,猜中了:)\n"); 27 break;}} 28 29 30 if(g!=l) 31 {printf("次数用光啦。偷偷告诉你,11月你的lucky day是%d号",l);} 32 33 34 return 0; 35 }