1. 程式人生 > 實用技巧 >實驗三 黃厚銘202083450067

實驗三 黃厚銘202083450067

實驗1

#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; }

實驗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>
#include<math.h>
int main(){
    int x=1, a=0, j=0;
    for(int n=101;n<=200;n++){
        for(int i=2;i<=sqrt(n);i++){
            if(n % i == 0){
                x=0;
                break;
            }
            else
                continue;
        }
        if(x==1)j+=1;
        if(x==1 && (j-1)%5!=0){
            printf("%6d",n);
            a++;
        }
        else if(x==1 && (j-1)%5==0 && j!=1){
            printf("\n");
            printf("%6d",n);
            a++;
        }
        else if(x==1 && (j-1)%5==0 && j==1){
            printf("%6d",n);
            a++;
        }
        x=1;
    }
    printf("\n");
    printf("101~200之間共有%d個素數",a);
    return 0;
}

實驗4

#include <stdio.h>
#include <math.h>
long long chang(long long i){
    long long len=1;
    if(i<=0)
        return 0;
    else{
        for(;i/10>0;i/=10)
            len++;
        return len;
    }
}




int main(){
    long long num,len,i,a;
    printf("Enter a number:");
    while(scanf("%lld",&num)!=EOF){
        long long j=0; 
        for(len=chang(num);len>=0;len--){
            i=pow(10,len);
            a=num/i;
            num=num%i;
            if(a%2!=0)
            j=j*10+a;
        }    
        printf("New number is:%d\n",j);
        printf("\n");
        printf("Enter a number:");
    }
    return 0;
}

思路:首先計算輸入數字的長度,即求這個數字一共有多少位,利用這位數結合10的指數運算依次把輸入數字每一位上的數字扣出來,並判斷是否是奇數,是就輸出。因為我是從左往右扣數字並輸出的,所以就能直接確保結果是高位仍在高位、低位仍在低位。

下面是我做的一個實驗4半成品,大家幫忙查查錯:)

 1 //這是我做的一個實驗4半成品,大家幫忙查查錯:) 
 2 #include<stdio.h>
 3 #include<math.h>
 4 long long chang(long long i){
 5     long long len=1;
 6     if(i<=0)
 7         return 0;
 8     else{
 9         for(;i/10>0;i/=10)
10             len++;
11         return len;
12     }
13 }
14 
15 int main(){
16     long long num,n;
17     while(scanf("%lld",&num)!=EOF){
18         for(n=chang(num);n>=0;n--){
19             if((num/(long long)pow(10,n-1))%2 != 0)
20                 printf("%lld",num/(long long)pow(10,n-1));
21             num = num - (num/(long long)pow(10,n-1)*(long long)pow(10,n-1));
22         }
23         printf("\n");
24     }
25     return 0;
26 }

半成品的執行結果如下

實驗5

#include<stdio.h>
int a(int n){
    int all;
    if(n<=0)
        return -1;
    else if(n==1){
        all = 1;
        return all;
    }
    else{
        all = n*a(n-1);
        return all;
    }
}

int main(){
    int n,x=1;
    double sum=0,y;
    printf("Enter n(1`10):");
    while(scanf("%d",&n)!=EOF){
    for(int i=1;i<=n;i++){
        x=a(i);
        y=1.0/x;
        x=1;
        if(i%2==0)
            sum = sum + -1 * y;
        if(i%2!=0)
            sum = sum + y; 
    }
    printf("n = %d, s = %lf\n",n,sum);
    printf("\n");
    sum=0;
    printf("Enter n(1`10):");
}
    return 0;
} 

實驗6

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    int day,guess,i=3;
    srand(time(0));
    day=rand()%31+1;
    printf("猜猜2020年12月哪一天會是你的luck day\n");
    printf("開始嘍,你有三次機會,猜吧:");
    for(;i>=1;i--){
        scanf("%d",&guess);
        if(guess==day){
            printf("\n");
            printf("Bingo!\n");
            i=10;
            break;
        }
        else if(guess>day){
            printf("\n");
            printf("你猜的日期晚了,luck day悄悄溜到前面啦\n");
            if(i!=1)
            printf("再猜:");
            continue;
        }
        else{
            printf("\n");
            printf("你猜的日期早了,luck day還沒到呢\n");
            if(i!=1)
            printf("再猜:");
            continue;    
        }
    }
    if(i==0){
        printf("\n");
        printf("次數用完啦,偷偷告訴你:12月,你的luck day是%d號。\n",day);
    }
    return 0;
}