实验3⃣️🌂叁三
一·
#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\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; // 生成一个0~9之间的随机整数 printf("%3d", x); } while(n<N); printf("\n"); return 0; }
三·
#include <stdio.h> #include <math.h> int main() { int i,j=200,k,p=0; for(i=101;i<=j;i++) { for(k=2;k<=sqrt(i);k++) { if(i%k==0) { break; } } if(k>sqrt(i)) { printf("%d\t",i); p++; } } printf("\n"); printf("101到200以内的素数有%d个",p); return 0; }

四·
#include <stdio.h> #include<math.h> int main() { long i; int m,k,j; double n; printf("Enter a numble:"); while(scanf("%ld",&i)!=0) { printf("\n"); j=0; n=0; while(i!=0) { m=i%10; k=m%2; if(k!=0) { j=j+m*pow(10,n); i=i/10; n++; } else i=i/10; } printf("%d\n",j); printf("Enter a numble:"); } return 0; }

1.如何取出奇数:
我定义了一个变量k,k=i%2,当k!=0时即i为奇数时取出这位数字进行后面的运算,如果k==0则直接将i/10,准备对下一位数判断。
2.如何确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位:
我每取出一位符合条件的奇数后,都将其与10的n次方相乘,而每取出一位奇数后n的值+1,如此一来便可保证在新数中,原先高位仍在高位,原先低位仍在低位。
五·
#include <stdio.h> #include <math.h> int main() { int n,m; double s,q; printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF) { if(n<1||n>10) printf("数据输入错误!"); else { s=0; q=1; for(m=1;m<=n;m++) { q=q*m; s=s+(pow(-1,m-1))*(1/q); } printf("n=%d\ts=%lf\n",n,s); printf("Enter n(1~10):"); } } return 0; }
六·
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf("猜猜2020年12月的哪一天是会是你的Lucky Day\n"); printf("开始咯,你有三次机会,猜咯(1~31):"); int a,b,sum; sum=3; srand((unsigned)time(NULL)); a=rand()%31+1; while(1) { sum--; scanf("%d",&b); if(sum==0) { printf("次数用完啦,偷偷告诉你,luck day是%d号\n",a); break; } if(a>b) printf("你猜的日期早了, luck day未到\n再猜(1~31):"); if(a<b) printf("你猜的日期晚了, luck day已经悄悄溜走了\n再猜(1~31):"); if(a==b) { printf("恭喜你的猜对咯,good luck!\n"); break; } } return 0; }
实验总结:
1.在本次实验中学会了如何使用rand()获取一个随机数并且知道可以用rand()%n来规定所取随机数的范围,其范围为(0~n-1)
2.明白了如何让程序多次执行的方法,明白了whlie(scanf(“%d”,&x))与whlie(scanf(“%d”,&x)!=0)的区别
3.对于for,whlie,break,continue的具体应用有了进一步的了解
尚存问题:
1.对于do...while的语句还是比较生疏,以后会多加运用
2.对于Mac系统内xcode中ctrlZ,ctrlD,ctrlE的使用存在问题,例如ctrlZ在xcode中无法实现其在windows下的编程软件中所达到的效果,具体的运用还在摸索当中。





浙公网安备 33010602011771号