Leetcode-35. 搜尋插入位置
阿新 • • 發佈:2020-11-16
任務1
#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;
}
任務2
#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; }
任務3
#include<stdio.h> int main(){ int a,b=0,i,n,c=200; for(a=101;a<=c;a++){ for(i=2;i<a;){ if(a%i==0){ break; } else if(a==i+1&&a%i!=0){ b++; printf("%d ",a); i++; } else{i++; } } } printf("101~200之間共有%d個素數",b); return 0; }
實驗4
#include<stdio.h> #include<math.h> int main(){ long s,t,i=1; printf("Enter a number: "); while(scanf("%ld",&s)!=EOF){ long n,a,b,c,d=0,e,f=0,g; g=s; printf("new number is: "); for(i=1;i<=g;){ i*=10; b=s; s=s/10; c=b%10; if(c%2!=0){ e=c*pow(10,d); d=d+1; f=f+e; } } printf("%d\n",f); printf("Enter a new number: ");} return 0;}
演算法說明:
1.設定變數i,使得當程式檢查到最後一位時迴圈結束
2.設定變數b,s,c,因為一個數字%10結果必定為個位上的數字,所以通過先迴圈/10再%10可依次得到各個位上的數字,使得c表達為各個位上數字,再用if判斷是否為奇數
3.同由2.,程式是從一個數字的最右位開始運算執行,所以高位依舊高位,低位依舊低位
4.設定變數e,d,f,使e=c*10^d,f來儲存最後結果值
任務5
#include<stdio.h> int main(){ int n,i; double s; printf("Enter n(1~10): "); while(scanf("%d",&n)!=EOF){ double a,b,c=1.0,d,e=0; for(i=1;i<=n;i++){ c=1.0; if(i%2==0){ a=-1.0; } else{ a=1.0; } for(b=i*1.0;b>0;b--){ c=c*b; } d=a/c; e=e+d; } printf("n = %d, s= %f\n",n,e); printf("Enter n(1~10): ");} return 0; }
任務6
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int n; srand(time(NULL)); int a=rand()%32; printf("猜猜2020年12月哪一天會是你的luck day\n開始咯,你有三次機會,猜吧(1~31): "); for(int i=1;i<=3;i++){ scanf("%d",&n);{ if(n>a){ printf("你猜的日期晚了,luck day悄悄溜到前面啦\n");} if(n<a){ printf("你猜的日期早了,luck day還沒到呢\n");} if(n==a){ printf("恭喜你猜對了你的幸運日期!!!"); break;} } } if(n!=a){printf("次數用完啦。偷偷告訴你:12月,你的luck day是%d號",a);} return 0; }
實驗總結:
熟悉了srand與rand函式的用法,可使取值範圍在一個固定區域內
尚存問題:
任務四中當輸入數過大時,結果會出錯