实验三
#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; }
//生成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; }
#include<stdio.h> #include<math.h> #include<stdlib.h> int main(){ int x,y,z=0; for(y=101;y<=200;y++){ for(x=2;x<=sqrt(y);x++){ if(y%x==0) break; }
if(x>sqrt(y)){ printf("%d ",y); z=z+1;
if(z%5==0)
printf("\n);
} } printf("\n101~200之间共有%d个素数",z); return 0; }
#include<stdio.h> #include<math.h> #include<stdlib.h> int main(){ int n,m,t=0; int d,l=0; printf("Enter a number: "); scanf("%d",&n); if(n<0){ printf("输入错误\n"); exit(0); } while(n!=0){ m=n%10; n=n/10; if(m%2!=0){ t=t*10+m; } } while(t!=0){ d=t%10; t=t/10; l=l*10+d; } printf("new number is:%d\n",l); return 0; }
思路:先分离出数字判断奇偶,再将位置倒过来,最后再次分离数字并将位置倒回去。
#include<stdio.h> #include<math.h> int main(){ int n,t,k=0,z; double s=1.0,m; printf("Enter n(1~10):"); scanf("%d",&n); for(t=2;t<=n;t++){ m=1.0; for(z=1;z<=t;z++) m*=z; k=++k; s=s+pow(-1,k)*1/m; } printf("n = %d,s = %lf",n,s); return 0; }
#include<stdio.h> #include<stdlib.h> int main(){ int n,i=1,x; x = rand()%31+1; printf("猜猜2020年12月哪一天会是你的luck day\n"); printf("开始喽,你有3次机会,猜吧(1~31):"); scanf(" %d",&n); for(i=1;i<=3;i++) if(n>x){ printf("你猜的日期晚了,luck day悄悄溜到前面了\n"); printf("再猜(1~31):"); scanf("%d",&n); } else if(n<x){ printf("你猜的日期早了,luck day还没到呢\n"); printf("再猜(1~31):"); scanf("%d",&n); } else exit(0); printf("次数用完啦。偷偷告诉你:12月,你的luck day是%d号",x); return 0; }
总结:了解了for的用法和生成伪随机数字的方法,分离数字的方法和将数字倒位的方法,算阶乘的方法。
问题:实验5仍可优化,exit(0)的用法不清楚,实验六必须输入四次才能得到答案。
for()中一定要有三个分号,代表有三个语句,第一个为赋值,第二个为关系,第三个为为赋值,都可省略,但分号不可省略,for(i=1,i<=3,i++)需运行三次且第一次为1。
算阶乘