实验3

实验任务一

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

    return 0;
}

 

实验任务二

// 生成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;
    
}

实验任务三

#include<stdio.h>
#include<math.h>

int main(){
    int a,m,i=0;
    for(a=101;a<=200;a++){
        for(m=2;m<=sqrt(a);m++){
            if(a%m==0)break;
        }
        if(m>sqrt(a)){
            printf("%5d",a);
            i++;
            if(i%5==0){
                printf("\n");
            }
        }
    }
    printf("\n");
    printf("101~200之间共有%d个素数\n",i);
    return 0;
}

 

实验任务四

#include<stdio.h>

int main(){
    long a;
    int b,c,f;
    printf("Enter a number:");
    while(scanf("%ld",&a)!=EOF){
        b=0;
        f=1;
        while(a!=0){
            c=a%10;
            if(c%2!=0){
                b=b+c*f;
                f*=10;
            }
            a/=10;
        }
        printf("new number is:%d",b);
        printf("\n");
        printf("\nEnter a number:");
        
    }
    return 0;
}

 对10取余判断是否为奇数,再对原数整除10继续取余判断

余数乘以10的n的次方

 

 实验任务五

#include<stdio.h>

int main(){
    double c,s;
    int n,a,b,i;
    printf("Enter n(1~10):");
    while(scanf("%d",&n)!=EOF){
        a=1;
        b=-1;
        s=0;
        for(i=1;i<=n;i++){
            b*=-1;
            a*=i;
            c=b*1.0/a;
            s+=c;
            }
        printf("n=%d,sum=%f\n",n,s);
        printf("\nEnter n(1~10):");
    }
    return 0;
}

 

 

实验任务六

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

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

 

 

 

posted @ 2020-11-17 09:10  rade  阅读(79)  评论(1)    收藏  举报