1. 程式人生 > 實用技巧 >[Opencv]基於arm64和Python2、Python3的opencv-python-contrib編譯

[Opencv]基於arm64和Python2、Python3的opencv-python-contrib編譯

任務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函式的用法,可使取值範圍在一個固定區域內

尚存問題:

任務四中當輸入數過大時,結果會出錯