实验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:生成在[N1,N2]范围内的随机数

问题2:生成在[1,N3]范围内的随机数

问题3:生成并输出5个随机的学生学号,学号有两种格式,

  • 以20248329开头的学号后接一个4位数,范围从397到476。
  • 以20248395开头的学号后接一个4位数,范围从1到21。

 

任务2:

源代码:

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main(){
 5     double a,b,c;
 6     double delta,p1,p2;
 7     while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){
 8         if(a==0){
 9             printf("a=0,invalid input\n");
10             continue;
11         }
12 
13         delta=b*b-4*a*c;
14         p1=-b/2/a;
15         p2=sqrt(fabs(delta))/2/a;
16 
17         if(delta==0)
18             printf("x1=x2=%.2g\n",p1);
19         else if(delta>0)
20             printf("x1=%.2g,x2=%.2g\n",p1+p2,p1-p2);
21         else{
22             printf("x1=%.2g+%.2gi,",p1,p2);
23             printf("x2=%.2g-%.2gi\n",p1,p2);
24         }
25     }
26 
27     return 0;
28 }

 

任务3:

源代码:

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

 

任务4:

源代码:

 1 #include<stdio.h>
 2 int main(){
 3     double cost;
 4     double total=0,max=0,min=20000;
 5     printf("输入今日开销,直到输入-1终止:\n");
 6     while(1){
 7         scanf("%lf",&cost);
 8         if(cost==-1){
 9             break;
10         }
11         if(cost>max){
12             max=cost;
13         }
14         if(cost<min){
15             min=cost;
16         }
17         total+=cost;
18     }
19     printf("今日累计消费总额;%.1f\n今日最高一笔开销:%.1f\n今日最低一笔开销:%.1f",total,max,min);
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<=0||b<=0||c<=0){
 6             printf("不能构成三角形\n");
 7         }
 8         if(a+b<=c||b+c<=a||a+c<=b){
 9             printf("不能构成三角形\n");
10         }
11         else if(a==b&&b==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     return 0;
21 }

 

任务6:

源代码:

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

 

posted @ 2024-10-11 16:43  xipar  阅读(2)  评论(0编辑  收藏  举报