实验3

实验任务1

//一元二次方程求解
//重复执行,知道按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);
                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-%i.2fi\n\n",real,imag,real,imag);
                
            }
        }
    printf("Enter a,b,c:  ");
        
    }
    return 0;
} 

 

实验任务2

//生成N个0~9之间的随机整数,并打印输出
#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; //生成一个0~9之间的随机整数
        printf("%3d",x); 
    }while(n<N);
    
    printf("\n");
    
    return 0;
}

 

实验任务三

//判断并输出101-200间的所有素数,同时统计其个数
#include <stdio.h>
#include <math.h>

int main(){
    
    int x,i,s,flag;
    
    x=101,s=0;
    
    while(x<=199){
        flag = 1;
        i = 2;
        while(i<=sqrt(x)){
            if(x%i == 0){
                flag = 0;
                i = sqrt(x);
            }
            i++;
        }
        
        if(flag == 1){
            s++;
            printf("%5d",x);
            if(s%5 == 0){
                printf("\n");
            }
        }
        x++,x++;
    }
    
    printf("\n");
    printf("101~200之间共有%d个素数",s);
    
    return 0;
} 

 

实验任务四

//输入长整型数按原顺序保留奇数 
#include<stdio.h>

int main(){
    int x, i,res,d;
    
    printf("Enter a number: ");
    
    while(scanf("%d",&x)!=EOF){
        
        res=0,d=1;
        i = x % 10;
        while(x>0){
            if(i % 2!=0){
                res = i*d+res;
                d=d*10;
            }
            x=x/10;
            i = x % 10;
        }
        
    printf("new number is: %d\n",res);
    printf("Enter a number:  ") ;
    }
    
    return 0;
}

思路:通过除10取余数,并存放在变量i中

这样可以实现由低位到高位的储存

判断是否为奇数,按位数乘以相应的d

实现由低位到高位的排列

 

实验任务五

#include<stdio.h>

int main(){
    int fz,fm,n,i;
    float s;    
    printf("Enter n(1~10): ");

    while(scanf("%d",&n)!=EOF){
        fz=1;
        fm=1;
        s=0;
        i=1;
        while(i<=n){
            fm=fm*i;
            s=s+fz/(double)fm;
            fz=-fz;
            i++;
        }
    
    printf("n = %d, s = %f\n",n,s);
    printf("Enter n(1~10): ");                
    }
    
    return 0;
}

 

实验任务六

#include<stdio.h>
#include<stdlib.h> 

int main(){
    int i,x;
    int n;
    
    printf("猜猜2020年12月哪一天会是你的lucky day\n");
    printf("开始喽,你有三次机会,猜吧(1~31):");
    x=rand()%30+1;

    i=1;
    while(i<=3){
        scanf("%d",&n);
        if(n==x){
            printf("\n");
            printf("恭喜你,猜中了!");
            i=5; 
        }
        else{
            if(n>x){
                printf("\n");
                printf("你猜的日期晚了,lucky day悄悄溜到前面啦\n");
            }
            else{
                printf("\n");
                printf("你猜的日期早了,lucky day还没到呢\n");
            }
            printf("再猜(1~31):");
            i++;
        }
                
    }
    
    if(i==4) {
        printf("次数用完啦!偷偷告诉你:12月,你的lucky day是%d号",x);
    }
    
    return 0;
}

 

posted @ 2020-11-20 13:53  加拉帕鸽斯  阅读(51)  评论(0编辑  收藏  举报