实验3
实验任务1
//一元二次方程求解 //重复执行,知道按Ctrl+z结束 // #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-%i.2fi\n\n",real,imag,real,imag); } } printf("Enter a,b,c: "); } return 0; }
实验任务2
//生成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 x,i,s,flag; x=101,s=0; while(x<=199){ flag = 1; i = 2; while(i<=sqrt(x)){ if(x%i == 0){ flag = 0; i = sqrt(x); } i++; } if(flag == 1){ s++; printf("%5d",x); if(s%5 == 0){ printf("\n"); } } x++,x++; } printf("\n"); printf("101~200之间共有%d个素数",s); return 0; }
实验任务四
//输入长整型数按原顺序保留奇数 #include<stdio.h> int main(){ int x, i,res,d; printf("Enter a number: "); while(scanf("%d",&x)!=EOF){ res=0,d=1; i = x % 10; while(x>0){ if(i % 2!=0){ res = i*d+res; d=d*10; } x=x/10; i = x % 10; } printf("new number is: %d\n",res); printf("Enter a number: ") ; } return 0; }
思路:通过除10取余数,并存放在变量i中
这样可以实现由低位到高位的储存
判断是否为奇数,按位数乘以相应的d
实现由低位到高位的排列
实验任务五
#include<stdio.h> int main(){ int fz,fm,n,i; float s; printf("Enter n(1~10): "); while(scanf("%d",&n)!=EOF){ fz=1; fm=1; s=0; i=1; while(i<=n){ fm=fm*i; s=s+fz/(double)fm; fz=-fz; i++; } printf("n = %d, s = %f\n",n,s); printf("Enter n(1~10): "); } return 0; }
实验任务六
#include<stdio.h> #include<stdlib.h> int main(){ int i,x; int n; printf("猜猜2020年12月哪一天会是你的lucky day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); x=rand()%30+1; i=1; while(i<=3){ scanf("%d",&n); if(n==x){ printf("\n"); printf("恭喜你,猜中了!"); i=5; } else{ if(n>x){ printf("\n"); printf("你猜的日期晚了,lucky day悄悄溜到前面啦\n"); } else{ printf("\n"); printf("你猜的日期早了,lucky day还没到呢\n"); } printf("再猜(1~31):"); i++; } } if(i==4) { printf("次数用完啦!偷偷告诉你:12月,你的lucky day是%d号",x); } return 0; }