实验任务1:
#include <stdlib.h> #include <time.h> #define N 5 int main(){ int x,n; srand(time(0)); for(n=1;n<=N;n++){ x = rand()%100; printf("%3d",x); } printf("\n"); return 0; }
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 int main(){ int x,n; srand(time(0)); for(n=1;n<=N;n++){ x = rand()%31+1; printf("%3d",x); } printf("\n"); return 0; }
实验任务2:
原来的盲猜版本:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int x,n,i; srand(time(0)); x = rand()%31+1; printf("猜猜2021年5月哪一天会是你的luck day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); scanf("%d",&n); for(i=1;i<=2;i++){ if(n==x){ break; } else if(n>x){ printf("你猜的日期晚了,luck day悄悄溜到前面啦\n"); } else{ printf("你猜的日期早了,luck day还没到呢\n"); } printf("再猜:"); scanf("%d",&n); } if(n==x) printf("恭喜你猜对啦!"); else printf("次数用完啦,偷偷告诉你:5月,你的luck day是%d号\n",x); }
为了验证程序的完善性,添加了一行printf把随机数输出了,方便我猜。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int x,n,i; srand(time(0)); x = rand()%31+1; printf("%d\n",x); printf("猜猜2021年5月哪一天会是你的luck day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); scanf("%d",&n); for(i=1;i<=2;i++){ if(n==x){ break; } else if(n>x){ printf("你猜的日期晚了,luck day悄悄溜到前面啦\n"); } else{ printf("你猜的日期早了,luck day还没到呢\n"); } printf("再猜:"); scanf("%d",&n); } if(n==x) printf("恭喜你猜对啦!"); else printf("次数用完啦,偷偷告诉你:5月,你的luck day是%d号\n",x); }
第二次猜对:
第三次猜对:
实验任务3:
#include <stdio.h> int main(){ long x,m; printf("Enter a number:"); while(scanf("%ld",&x)!=EOF){ long i=1,t=0; while(x!=0){ m=x%10; if(m%2==1){ t=t+m*i; i=i*10; } x=x/10; } printf("new number is:%ld\n",t); printf("Enter a number:"); } return 0; }
实验任务4:
#include <stdio.h> #include <math.h> void solve(double a,double b,double c); int main(){ double a,b,c; printf("Enter a,b,c:"); while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){ solve(a,b,c); printf("Enter a,b,c:"); } return 0; } void solve(double a,double b,double c){ double x1,x2; double delta,real,imag; if(a==0) printf("not quadratic equation.\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",x1,x2); } else{ real=-b/(2*a); imag=sqrt(-delta)/(2*a); printf("x1=%.2f + %.2fi,x2=%.2f - %.2fi\n",real,imag,real,imag); } } }
实验任务5:
#include <stdio.h> double fun(int n); int main(){ int n; double s; printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF){ s=fun(n); printf("n=%d,s=%f\n\n",n,s); printf("Enter n(1~10):"); } return 0; } double fun(int n){ double i,p=1,q=0; for(i=1;i<=n;i++){ p=p*i; q=q+1.0/p; p=(-1)*p; } return q; }
实验任务6:
#include <stdio.h> #include<math.h> int isPrime(int x); int main (){ int n,t; t=0; for(n=100;n<=200;n++){ if(isPrime(n)){ t++; printf("%4d",n); if(t%5==0){ printf("\n"); } } } printf("\n\n"); printf("100~200之间素数个数为:%d",t); } int isPrime(int x){ int k; for(k=2;k<=sqrt(x);k++){ if(x%k==0){ return 0; } } return 1; }