实验2
task1
源代码:
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5 #define N1 397 #define N2 476 #define N3 21 int main() { int cnt ; int random_major,random_no; srand(time(NULL)); cnt = 0; while(cnt < N){ random_major = rand()% 2; if(random_major){ random_no = rand() % (N2-N1 +1) + N1; printf("20248329%04d\n",random_no); } else{ random_no = rand( )% N3 + 1; printf("20248395%04d\n",random_no); } cnt++; } }
测试结果:
回答:问题1:随机取397~476之间的数
问题2:随机取1~21之间的数
问题3:随机生成五位同学的学号
task2
源代码:
#include <stdio.h> #include <math.h> int main () { double a , b, c; double delta, p1, p2; while(scanf("%lf%lf%lf",&a, &b, &c)!=EOF){ if(a==0){ printf("a=0,invalid input\n"); continue; } delta = b*b-4*a*c; p1 = -b/2/a; p2 = sqrt(fabs(delta))/2/a; if(delta==0) printf("x1=x2=%.2g\n",p1); else if(delta > 0) printf("x1=%.2g,x2 = %.2g\n",p1+p2,p1-p2); else{ printf("x1 = %.2g+%.2gi,",p1,p2); printf("x1 = %.2g-%.2gi\n",p1,p2); } } return 0; }
实验结果:
task3
源代码:
#include <stdio.h> int main(){ char ch; while(scanf("%c",&ch)!=EOF ){ if(ch=='r'){ printf("stop!\n");} else if(ch=='g'){ printf("go go go\n");} else if(ch=='y'){ printf("wait a minute\n");} else { printf("something must be wrong\n");} getchar(); } return 0; }
测试结果:
task4
源代码:
# include <stdio.h> int main() { double sum,cos,max,min; sum=0; max=0; min=20000; printf("输入今日开销,直到输入-1终止:\n"); while(1){ scanf("%lf",&cos); if(cos==-1){ break; } sum=sum+cos; if(cos>=max){ max=cos; } if(cos<=min){ min=cos; } } printf("今日累计消费总额:%.1f\n",sum); printf("今日最高一笔开销:%.1f\n",max); printf("今日最低一笔开销:%.1f\n",min); return 0; }
测试结果:
task5
源代码:
#include <stdio.h> int main () { int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF){ if(a+b>c&&a+c>b&&b+c>a) {if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)){ printf("直角三角形\n"); } else if((a==b)&&(b==c)){ printf("等边三角形\n"); } else if((a==b)||(a==c)||(b==c)){ printf("等腰三角形\n"); } else{ printf("普通三角形\n"); } } else { printf("不能构成三角形\n"); } } return 0; }
测试结果:
task6
源代码:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf("猜猜2024年11月哪一天是你的lucky day\n\n"); printf("开始咯 你有三次机会,猜吧(1~30):\n"); int i=3; if ((i<=2)&&(i>=1)){ printf("再猜(1~30):"); } int luck,guess; luck=rand()%30+1; while(i>0) { i--; srand(time(NULL)); scanf("%d",&guess); if(guess>luck) {printf("你猜的日期晚了,你的lucky day在前面哦\n\n"); } else if(guess<luck) {printf("你猜的日期早了,你的lucky day在后面哦\n\n"); } else {printf("哇,猜中了\n"); break; } } if(i==0) { printf("次数用完啦。偷偷告诉你,11月你的lucky day是%d号\n",luck); } return 0; }
测试结果: