实验三————头都大了

任务一

//一元二次方程求解
//重复执行,直到Ctrl+Z结束
//
#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);
                x1 = (-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;
} 

 

任务二

# 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<stdlib.h>
#include<math.h>
int main() {
    int x,y,z,a;
    y=101;
    a=0;
    z=0;
    for (;y<=200;y++)
    {
    
    for (x=2;x<=y;x++)
    {
        if(y%x==0)
        {
        break;
    }
}  
    if(y==x)
    {
        printf("%5d\t",y);
        a++;
        if (a%5==0)
        printf("\n");
    }
    
}
    printf("\n100~200之间共有%d个素数。\n",a); 

    return 0;
}
 

 

任务四

算法思路:输入一个很长的数,首先分奇数跟偶数。奇数的个位是需要留下的,而偶数则不需要,因为变量定义为整型,所以变量除以10之后则可以得到原来的10位数上的数字,再分奇数跟偶数,然后得到所有的数,但是这样下来得到的应该是要求目的反过来的,所以在通过反序得到。

#include<stdio.h>
int main(){
    int a,b,c=0,s,num=0;
    printf("Enter a number:");
    while(scanf("%d",&a)!=EOF){
        while(a)
        {
            b=a%10;
            a=a/10;
            if(b%2!=0){
                c=b+c*10;
            }
        }
        while(c)
        {
            s=c%10;
            c=c/10;
            num=num*10+s;
        }
        printf("new number is:%d\n",num);   
        num=0;
        printf("\n");
        printf("Enter a number: ");
    }
    return 0;
}

任务五

#include<stdio.h>
#include<stdlib.h>
int main(){
    int n,i,p=1;
    float s=1,l;
    printf("Enter n(1~10):");
    while(scanf("%d",&n)!=EOF){
        for(i=2;i<=n;i++){
            p=p*i*(-1);
            l=1.0/p;
            s=s+l;
        }
        printf("n = %d,s = %f",n,s);
        printf("\n");
        printf("\n");
        printf("Enter n(1~10):");
    }
    return 0;
} 

任务六

# include<stdio.h>
# include<stdlib.h>
# include<time.h>
#define max 31
#define min 1

int main() {
    int x=1, n,t;
    
    srand(time(0));
    n=rand()%((max-min)+min);
    printf("猜猜2020年12月哪一天会是你的luck day\n");
    printf("\n");
    printf("开始喽,你有三次机会,猜吧(1~31): ");
    scanf("%d",&t);
    while(x<3){
        
        if(n==t){
            printf("luck day!");
            break;
        }
        else if(n>t){
            printf("你猜的日期早了,luck day 还没到呢!");
            printf("\n");
            printf("\n"); 
            x++;
            printf("再猜(1~31):"); 
            scanf("%d",&t);
        }
        else if(n<t){
            printf("你猜的日期晚了,luck day 悄悄溜到前面了!");
            printf("\n");
            printf("\n");
            x++;
            printf("再猜(1~31):");
            scanf("%d",&t);
        }
        if(x==3)
        printf("次数用完了,偷偷告诉你:12月,你的luck day是%d号",n);
        
        
    }
     
    
    
    
    
    return 0; 
}

 

实验总结:实验任务四做了最长时间,五六加起来的时间还没有任务四的时间一半久,一开始多组输入都有问题,后来又是各种取奇数偶数方法的问题,但好在搞通了一些点之后,再做相类似的就会相对轻松

posted @ 2020-11-18 22:08  小尹弟弟  阅读(138)  评论(0)    收藏  举报