实验三
#include<math.h> #include<stdio.h> int main(){ float a,b,c,x1,x2; float delta,real,imag; printf("Enter a,b,c: "); while(scanf("%f%f%f",&a,&b,&c)!=EOF) { if(a==0) printf("not quadratic equation.\n\n"); else{ delta=b*b-4*a*c; if(delta>=0){ x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf("x1=%.2f,x2=%.2f\n\n",x1,x2); } else{ real=-b/(2*a); imag=sqrt(-delta)/(2*a); printf("x1=%.2f+.2fi,x2=%.2f-%.2f\n\n",real,imag,real,imag); } } printf("Enter a,b,c:"); } return 0; }
实验二:
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5 int main() { int x,n; srand(time(0)); n=0; do{ n++; x=rand()%10; printf("%3d",x); }while(n<N); printf("\n"); return 0; }
scrand和燃灯()配合使用产生伪随机数序列。
scrand(time(0))
rand 检索生成的伪随机数
从scrand(seed)中指定的seed开始 返回一个【seed,RAND_MAX(0x7fff))间的随机整数。其中参数seed是rand()的种子,用来初始化rand()的起始值。
可以认为rand()在每次被调用的时候,它会查看:
1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。
2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。
实验三:
#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int k,m,i,n=0; for(k=101;k<=200;k++){ m=sqrt(k); for(i=2;i<=m;i++) if(k%i==0)break; if(i>m){ printf("%6d",k); n++; if(n%5==0) printf("\n"); } } printf("\n 101~200之间共有%d个素数",n); return 0; }
实验4:
#include<stdio.h> int main(){ int s,a,m,t; m=1; t=0; printf("Enter a number:") ; while(scanf("%d",&s)!=EOF){ while(s>=1) { a=s%10; s=s/10; if(a%2!=0){ t=t+a*m; m=m*10; } } if(s%2==1) t=t+s*m; printf("new number is:%d\n",t); printf("Enter a number:") ; t=0; m=1; } return 0; }
(1)此数对10取余,得到最末位,将末位对2取余,若为1,则为奇数,
(2)第一次取乘1,第二次乘10,以此类推。
实验5:
#include<stdio.h> #include<math.h> int main(){ int a,b,n; double s,i; a=1; b=1; s=0; i=1; printf("Enter n(0~10):"); while(scanf("%d",&n)!=EOF){ for(;a<=n;a++){ b=(-1)*b*a; s=s-i/b; } printf("n=%d,s=%lf\n\n",n,s); printf("Enter n(0~10):"); } return 0; }
实验六
#include<stdlib.h> #include<stdio.h> #include<time.h> int main(){ int i,t,n; srand(time(0)); t=rand()%30+1; i=0; printf("猜猜2020年哪一天会是你的Luck day\n"); printf("开始喽,你有三次机会,猜吧(1^31):"); scanf("%d",&n); while(i<=3){ if(n>t){ printf("你猜的日期晚了,luck day悄悄溜到前面啦\n"); printf("再猜:"); scanf("%d",&n); i++; } else if(n<t){ printf("你猜的日期早了,luck day还没到呢\n"); printf("再猜:"); scanf("%d",&n); i++; } else printf("猜中了,nice!"); i++; } printf("次数用完啦。偷偷告诉你:12月,你的luck day是%d号",t); return 0; }