实验3
实验任务四
#include<stdio.h> #include<math.h> int main() { int n,a,b,i,s; printf("Enter a number:"); scanf("%d",&n); while(n){ i=0; s=0; while(n!=0){ a=n%10; b=a%2; if(b!=0){ s=s+a*pow(10,i); i++;} n/=10;} printf("new number is:%d\n",s); printf("Enter a number:"); scanf("%d",&n);} return 0;}
实验四的算法是先确定n是奇数还是偶数,是偶数的话就略过,是奇数的话就先取余数,后边将每次取余数后的n/10是为了从个位开始取余,然后1将各位变成小数位数,防止干扰后边取余的步骤。
依次得到奇数位再将其进行相应的扩大10的n次方倍再相加得到新的数。
实验任务一
#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-%.2f\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> #include<math.h> int main(){ int i,j; int count=0; for(i=100;i<=200;i++) { for(j=2;j<=sqrt(i);j++) if(i%j==0) break; if(j>sqrt(i)) { printf("%4d",i); count++; if(count%5==0) printf("\n"); } }printf("\n101~200中有%d个素数",count); return 0; }

实验任务六
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int i,m,n=1; srand((unsigned)time(0)); m=rand()%30+1; printf("猜猜2020年12月哪一天会是你的luck day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); while(n<=3) { scanf("%d",&i); if(i==m) { printf("猜对了哦!\n"); break; } else if(m>i) { printf("你猜的日期早了,luck day还没到呢\n"); printf("再猜(1~31):"); n++; } else { printf("你猜的日期晚了,luck day已经悄悄溜走了\n"); printf("再猜(1~31):"); n++; } } if(n>3) printf("次数用完了,偷偷告诉你:12月,你的luck day是%d\n",m); return 0;}

实验任务五
#include<stdio.h>
int main(){ int n,m,i; double x,s; s=0; x=1; m=-1; printf("Enter a number(1~10):%d\n",n); while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) { m=-m; x=x*i; s=s+m*(1/x); } printf("n=%d,s=%lf\n",n,s); printf("Enter a number(1~10):"); } return 0; }
任务五的算法重点在i的值,x=x*i实现的是阶乘,m实现的是正负号的转换,s的计算式则是把各个算出来的结果相加减。

浙公网安备 33010602011771号