实验3
任务1
#include <stdio.h> #include <math.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"); 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-%.2fi\n\n",real,imag,real,imag); } } printf("Enter a b c:"); } return 0; }
任务2
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 int main() { int x,n; srand(time(NULL)); n=0; do { n++; x=rand()%10; printf("%3d",x); }while(n<N); printf("\n"); return 0; }
任务3
#include <stdio.h> #include <math.h> int main() { int i,m,n,p=0; for(n=101;n<201;n++) { m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0)break; if(i>m&&n>1) { printf("%6d",n); p++; if(p%5==0) printf("\n"); } } printf("\n100~200之间有%d个素数。",p); return 0; }
其实就是在判断素数的程序的基础上外层加上一个循环,内部加上一个判断换行的语句。
任务4
#include <stdio.h> int main() { int i,temp,sum; long n; printf("Enter a number:"); while(scanf("%ld",&n)!=EOF) { sum=0,temp=1; while(n) { if((n%10)%2!=0) { sum=sum+(n%10)*temp; temp*=10; } n/=10; } printf("new number is:%d",sum); printf("\nEnter a number:"); } return 0; }
1、先对n除以10后取余,得到n的最后一位,再对其除以2取余就可取出奇数。
2、按顺序取余后丢弃末位即可保证各奇数位置正确
任务5
#include <stdio.h> int main() { int n,i,p=1; double s; printf("Enter a number:"); while(scanf("%d",&n)!=EOF&&n>=1&&n<=10) { for(i=1,s=0,p=1;i<=n;i++) { p=p*i; if(i%2==1) { s=s+1.0/p; } else { s=s-1.0/p; } } printf("\nn=%d,s=%lf\n",n,s); printf("Enter a number:"); } return 0; }
任务6
#include <stdio.h> #include <time.h> #include <stdlib.h> int main() { int i,day,t; srand(time(NULL)); t=rand()%31+1; printf("猜猜十二月哪天是你的幸运日\n"); printf("开始了,你有三次机会,猜吧(1~31):"); for(i=0;i<3;i++) { scanf("%d",&day); if(day==t) { printf("恭喜你猜中了"); break; } else if(day<t) printf("你猜的日期早了,幸运日还没到\n"); else printf("你猜的日期晚了,幸运日已经溜走了\n"); if(i<2) printf("再猜:"); } printf("偷偷告诉你,你的幸运日是%d号",t); return 0; }