实验3

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

截图

 

 

实验任务3

#include<stdio.h>
#include<math.h>
int isprime(int n);
int main()
{    
    int i,j=0;
    for(i=101;i<=200;i++)
    {
        if(isprime(i)==1)
        { 
        printf("%4d",i);
        j++;
        } 
    }
    printf("\n");
    printf("100到200之间共有%d个素数\n",j);
    return 0;
}
int isprime(int n)
{
    int k;
    for(k=2;k<=sqrt(n);k++)
    
        if(n%k==0)
        return 0;
        
    return 1;    
}

截图

 

 

任务4

#include<stdio.h>
#define N 100
int main()
{
    int s;
    while(scanf("%d",&s)!=EOF)
    {
        int p,r=0,t=1;
        do
        {    
            p=s%10;
            if(p%2==1)
            {
                r=r+p*t;
                t*=10;
            }
            s=(s-p)/10;
        }while(s>0);
        printf("%d\n",r);
    }
    
    return 0;
}

截图

 

 思路:

 每一位数对二取余,看是否为1,是1则取出来为p

t=1;

s=s+p*t;

t*=10;

 

任务5

#include<stdio.h>
int main()
{
    double s=0.0;
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int t=1,i;
        double j=-1.0;    
        for(i=1;i<=n;i++)
        {
            t*=i;
            j*=-1;
            s=s+j/t;    
        }
        printf("%f\n",s);
        s=0.0;
    }
    return 0;
}

截图

 

 

任务6

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int num,a,b,c,t;
    srand(time(0));
    num=1+rand()%31;
    
    printf("开始咯,你有三次机会,1到31猜吧:  ");
    scanf("%d",&a);
    
    if(a==num)
    {
        printf("好兄弟,你猜对了\n");
        return 0;
    }
    else if(a>num)
    printf("好兄弟,你猜晚了\n");
    else
    printf("好兄弟,你猜早了\n");
    
    printf("再猜1到31:  ");
    scanf("%d",&b);
    
    if(b==num)
    {
        printf("好兄弟,你猜对了\n");
        return 0;
    }
    else if(b>num)
    printf("好兄弟,你猜晚了\n");
    else
    printf("好兄弟,你猜早了\n");
    
    printf("再猜1到31:  ");
    scanf("%d",&c);
    
    if(c==num)
    {
        printf("好兄弟,你猜对了\n");
        return 0;
    }
    else 
    printf("次数用完啦,偷偷告诉你:12月,你的lucky day 是%d号\n",num);
     
     return 0;
}

截图

 

 

实验总结:

1)在循环中不能出现死循环

2)随机函数 先使用srand(time(0)),再使用num=x+rand()%(某一个数)

 

posted @ 2020-11-13 23:19  xiaojm  阅读(69)  评论(3)    收藏  举报