实验三

任务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的指数运算,依次把输入数字每一位上的数字打出来,判断是否为奇数,是奇数就输出。

任务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;
}

实验总结:
算法有简单和复杂的区别,未接触函数之前,自己只能用比较复杂的方法设计算法,学了函数之后,终于可以把程序中的很多操作储存到另一个函数当中,
需要的时候直接调用即可,如此代码就变得简洁许多。同时,再面对比较复杂的一些算法的时候,自己可能无能为力,再怎么看还是发现不了错误。这个时候,最
好的办法就是向老师和同学交流求助。所以说,接下来还是要多多学习才好。
posted @ 2020-11-20 14:17  铁盒半岛  阅读(97)  评论(0)    收藏  举报