实验三
//一元二次方程求解 #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; }
// 生成N个0~9之间的随机整数 #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; // 生成一个0~9之间的随机整数 printf("%3d", x); }while(n<N); printf("\n"); return 0; }
//输入101-200之间素数 #include <stdio.h> #include <math.h> int main(){ int i,m,n,k; for(n=101;n<=200;n++) {m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0)break; if(i>m){ printf("%d\n",n); k++; } } printf("素数一共有%d个\n",k); return 0; }
#include <stdio.h> int main(){ int s,i,n,t; printf("Enter a number:"); while(scanf("%d",&s)!=EOF){ i=0; n=1; while(s!=0){ t=s%10; if(t%2!=0){ i=t*n+i; n=n*10; } s=s/10; } printf("new number is:%d\n",i); printf("Enter a number:") ; } return 0; }
任务4的2个关键点:
1.通过%10,逐个把每个数取出来,然后判断奇偶,来选出需要的数字。
2.保持高位,每次取出所需数后*n保持原来所在的高位,且每次操作后,也让n及时进位,来保持下一次所取数更高位的需要。
//shulei #include <stdio.h> #include <math.h> int main() { int n, i, factorial = 1; double s = 0, sign = 1.00000; printf("enter n(1~10):"); while(scanf("%d",&n) != EOF) { for(i=1;i<=n;i++) { factorial = factorial * i; sign = pow(-1,i+1); s = s + sign/factorial; continue; } printf("n = %d s = %f\n", n, s); s = 0; factorial = 1; sign = 1.00000; printf("enter n(1~10):"); } return 0; }
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int a,x,n; srand(time(0)); x=rand()%31+1; printf("猜猜2020年12月哪一天会是你的luck day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); scanf("%d",&a); for(n=1;n<=3;n++){ if(n!=3){ if(a>x){ printf("\n你猜的日期晚了,luck day悄悄溜到前面啦\n"); printf("再猜(1~31):"); } if(a<x){ printf("\n你猜的日期早了,luck day还没到呢\n"); printf("再猜(1~31):"); } scanf("%d",&a); } if(a==x) break; if((n==3)&&(a!=x)) printf("\n\n次数用完啦。偷偷告诉你:12月,你的luck day是%d号",x); } return 0; }
实验的一点感悟:
1.循环的嵌套有时弄得挺乱,还是需要在纸上将步骤规划清楚,弄清顺序。
2.