实验3ss
- 2020 年 11 月 16 日
- 筆記
1.实验任务1
#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; }
2.实验任务2
#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; }
3.实验任务3
#include <stdio.h> #include <math.h> #include <stdlib.h> int main(){ int i,a,b; for(i=101;i<=200;i++){ for(a=2;a<=sqrt(i);a++){ if(i%a==0)break; else if(a>sqrt((double)i)-1){ printf(" %d",i); b++; if(b%5==0) printf("\n"); } else continue; } } printf("\n101~200之间共有%d个素数.\n",b); return 0; }
4.实验任务4
#include <stdio.h> int main(){ long int s,t,b=0,c; int a; printf("Enter a number:"); while(scanf("%ld",&s)!=EOF){ for(;s>0;s/=10){ a=s%10; if(a%2!=0) b=b*10+a; } for(t=0;b>0;b/=10){ c=b%10; t=t*10+c; } printf("new number is:%d\n",t); printf("\nEnter a number:"); } return 0; }
这个实验有些难度,需要完成输出奇数,我采用先将其奇数逆序,在将各位数换序,使其正序输出。而且还要实现能够循环输入,这个花了我很长时间,通过不断的调整语句以及顺序,终于我将这个程序实现了,是的,不断调整,终于还是有出路,虽然比别的同学慢一点,但最终还是实现了。之间出了两次问题,一次时无法循环输入,还有一次时没有更新t的值。希望在学习编程的路上,自己可以一步一个脚印,越走越远。嘻嘻嘻😊😄……
5.实验任务5
#include <stdio.h> int main(){ int n,i=1; double s=0,a=(-1); printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF){ for(;i<=n;i++){ a=a*i; a=a*(-1); s=s+1/a; } printf("n = %d, s= %lf\n",n,s); printf("\nEnter n(1~10):"); } return 0; }
这个实验对语句的顺序要求比较高,之前做了很多次答案都错了,出的问题是,循环输入前,没有重置s的值。
6.实验任务6
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int n,i,t; srand((int)time(NULL)); 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; }