实验3 C语言分支语句和循环语句编程应用
实验一:
#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; }
实验二:
#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; }
实验三:
#include <stdio.h> int main(){ int n = 0; for(int i=101;i<=200;i++){ for(int j=2;j<i;j++){ if(i%j==0){break;} else{if(j==i-1){n++;printf("%5d",i); if(n%5==0){printf("\n");}}}}} printf("\n"); printf("101到200之间一共有%d个素数\n",n); return 0;}
实验四:
1.如何取出数位上为奇数的数字:1.每次都将数字的最后一位取出,然后去除数字末位形成新的数字,以此循环,可取出所有数字。
2.对每次取得的数进行对二取余的操作,判断为奇数,然后输出。
2.如何确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位:借助与十的几次方相乘的方式,对取出的数字进行排序。
即第n次取出的数应乘以十的n-1次方,即可实现原先的高位仍在高位,原先的低位仍在低位。
#include<stdio.h> #include<math.h> int main(){ int m,n; printf("Enter a number:"); while(scanf("%d",&n)!=EOF){ int i=0,s=0; do{m=n%10; if(n%2!=0){s=s+m*pow(10,i); i++;} n=n/10;} while(n!=0); printf("new number is:%d",s); printf("\n"); printf("Enter a number:");}}
实验五:
#include<stdio.h> int main(){ int i=1; int n; float s=0,h=1; printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF){ for(;i<=n;i++){ h=h*i; if(i>=2) h=-1*h; s=s+1/h;} printf("n=%d,s=%f\n",n,s); printf("Enter n(1~10):");} }
实验六:
#include<stdio.h> #include<time.h> #include<stdlib.h> int main(){ int x,n,i=0; srand(time(0)); x=1+rand()%31; printf("猜猜2020年12月哪一天会是你的luck day\n开始喽,你有三次机会,猜吧(1~31):"); while(1){ scanf("%d",&n); if(n==x) {printf("恭喜你猜对了");break;} else{ if(n>x) printf("你猜的日期晚了,luck day悄悄溜到前面啦"); else printf("你猜的日期早了,luck day还没到呢"); i=i+1; if(i>2){printf("\n次数用完了。偷偷告诉你:12月,你的luck day是%d号",x); break;} printf("\n"); printf("再猜(1~31):"); } }return 0;}