实验二
实验一:
源代码:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #define N 5 5 #define N1 397 6 #define N2 476 7 #define N3 21 8 int main(){ 9 int cnt; 10 int random_major,random_no; 11 srand(time(NULL)); 12 cnt=0; 13 while(cnt<N){ 14 random_major=rand()%2; 15 if(random_major){ 16 random_no=rand()%(N2-N1+1)+N1; 17 printf("20248329%04d\n",random_no); 18 } 19 else{ 20 random_no=rand()%N3+1; 21 printf("20248395%04d\n",random_no); 22 } 23 cnt++; 24 } 25 return 0; 26 }
运行结果:
问题:line21代码功能为生成一个随机数,范围在397----476
line25再次随机生成一个数,范围在1---21
功能是随机生成数字并且组成一个学号并打印出来
实验二:
源代码:
1 #include<stdio.h> 2 #include<math.h> 3 int main(){ 4 double a, b, c; 5 double delta,p1,p2; 6 while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){ 7 if(a==0){printf("a=0,invalid,input\n"); 8 continue; 9 } 10 delta=b*b-4*a*c; 11 p1=-b/2/a; 12 p2=sqrt(fabs(delta))/2/a; 13 if(delta==0) 14 printf("x1=x2=%.2g\n",p1); 15 else if(delta>0) 16 printf("x1=%.2g,x2=%.2g\n",p1+p2,p1-p2); 17 else{ 18 printf("x1=%.2g+%.2gi.",p1,p2); 19 printf("x1=%.2g-%,2gi\n",p1,p2); 20 } 21 } 22 return 0; 23 }
运行结果:
实验三:
源代码:
1 #include<stdio.h> 2 int main(){ 3 char cnt; 4 while(1){ 5 (scanf(" %c",&cnt)); 6 if(cnt=='r'){ 7 printf("stop!\n"); 8 }else if(cnt=='y'){ 9 printf("wait a minute\n"); 10 }else if(cnt=='g'){ 11 printf("go go go\n"); 12 }else{ 13 printf("something must be wrong...\n"); 14 } 15 while(getchar()!='\n'); 16 } 17 return 0; 18 }
运行结果:
实验四:
源代码:
1 #include<stdio.h> 2 int main() 3 { 4 printf("输入今日的开销,直到输入-1为止:\n"); 5 double a,b=0.0,c=100000000000.0,d=0.0; 6 int input=1; 7 while(1){ 8 scanf("%lf",&a); 9 if(a==-1){ 10 break; 11 } 12 if (input){ 13 b=c=a; 14 input=0; 15 }else 16 if(a>b) 17 b=a; 18 if(a<c) 19 c=a; 20 d+=a; 21 } 22 printf("今日最高的一笔花销为:%.1lf\n",b); 23 printf("今日的最高一笔花销为:%.1lf\n",c); 24 printf("今日累计消费:%.lf\n",d); 25 return 0; 26 }
运行结果;
实验五
源代码:
1 #include <stdio.h> 2 #include<math.h> 3 int main(){ 4 double a,b,c; 5 while(1){ 6 scanf("%lf%lf%lf",&a,&b,&c); 7 if (a+b>c&&a+c>b&&b+c>a){ 8 if(a==b&&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 } else 17 printf("这不是一个三角形\n"); 18 } 19 return 0; 20 }
运算结果:
实验六
源代码:
1 #include<stdio.h> 2 int main(){ 3 int a,b,i=1; 4 srand(time(NULL)); 5 a=rand()%30+1; 6 printf("猜猜2024年11月哪一天会是你的lucky day\n"); 7 printf("开始喽,你有三次机会,猜吧(1~30):"); 8 while(i<=3){ 9 scanf("%d",&b); 10 if(b==a){ 11 printf("哇,猜中了:)"); 12 break; 13 } 14 else if(b<a) 15 printf("你猜的日期早了,你的lucky day还没到呢\n"); 16 else 17 printf("你猜的日期晚了,你的lucky day在前面呢\n"); 18 i++; 19 if(i<=3) 20 printf("再猜(1~30):"); 21 else 22 printf("你的次数用光啦,偷偷告诉你,11月你的lucky day是%d号\n",a); 23 } 24 return 0; 25 }
运算结果: