任务一
#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 - %.2fi\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; }

任务三
#include<stdio.h> int main() { for(int i=101;i<=200;i++) { int a=i/2; bool flag=0; for(int j=2;j<=a;j++) if(i%j==0) { flag=0; break; } else flag=1; if(flag) printf("%d ",i); } return 0; }

任务四
#include<stdio.h> int main() { long int s; printf("Enter a number: "); scanf("%ld",&s); int i=1; long int x=0; do { int temp=s%10; if(temp%2==1) { x+=temp*i; i*=10; } s/=10; }while(s>0); printf("New number is: %ld",x); return 0; }

思路:
对数字模10就可以得到个位,每取完一个数字就使下一位在原来的基础上×10完成进位。
任务五
#include<stdio.h> int main() { int n=0; while(printf("input N(1~8): "),scanf("%d",&n)!=EOF) { double s=1.0; double j=-1; long long int F=1; for(int i=2;i<=n;i++) { F*=i; s+=j/F; j*=-1; } printf("Output S: %lf\n",s); } return 0; }

任务六
#include<stdio.h> #include<time.h> #include<stdlib.h> int main() { int b=0; do { srand(time(0)); b=rand()%100; }while(b>31||b<1); int a=-1; int i=0; do { scanf("%d",&a); if(a>b) { if(a-b>10) printf("这实在是太大了\n"); else printf("再小一点点就好了\n"); } else if(a<b) { if(b-a>10) printf("你这太小了啊\n"); else printf("你再大一点点?\n") ; } i++; if(i==3) { printf("我很抱歉!"); return 0; } }while(a!=b); printf("Lucky day"); return 0; }

浙公网安备 33010602011771号