陈鹏亦

导航

实验3

任务1

#include <stdio.h>
#include <math.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");
        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(NULL));
    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 i,m,n,p=0;
    
    for(n=101;n<201;n++)
    {
        m=sqrt(n);
        for(i=2;i<=m;i++)
            if(n%i==0)break;
    if(i>m&&n>1)
    {
        printf("%6d",n);
        p++;
        if(p%5==0)
            printf("\n");
    }
         
    }
    printf("\n100~200之间有%d个素数。",p);
    return 0;
}

其实就是在判断素数的程序的基础上外层加上一个循环,内部加上一个判断换行的语句。

任务4

#include <stdio.h>
int main()
{
    int i,temp,sum;
    long n;
    printf("Enter a number:");
    while(scanf("%ld",&n)!=EOF)
    {
        sum=0,temp=1;
        while(n)
        {
            if((n%10)%2!=0)
            {
                sum=sum+(n%10)*temp;
                temp*=10;
            }
            n/=10;
        }
        printf("new number is:%d",sum);
        printf("\nEnter a number:");
    }
    
    return 0;
}

1、先对n除以10后取余,得到n的最后一位,再对其除以2取余就可取出奇数。

2、按顺序取余后丢弃末位即可保证各奇数位置正确

任务5

#include <stdio.h>
int main()
{
    int n,i,p=1;
    double s;
    printf("Enter a number:");
    while(scanf("%d",&n)!=EOF&&n>=1&&n<=10)
    {
        
        for(i=1,s=0,p=1;i<=n;i++)
        {
            p=p*i;
            if(i%2==1)
            {
                s=s+1.0/p;
            }
            else
            {
                s=s-1.0/p;
            }
        }
        printf("\nn=%d,s=%lf\n",n,s);
        printf("Enter a number:");
    }
    return 0;
}

任务6

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    int i,day,t;
    srand(time(NULL));
    t=rand()%31+1;
    printf("猜猜十二月哪天是你的幸运日\n");
    printf("开始了,你有三次机会,猜吧(1~31):");
    for(i=0;i<3;i++)
    {
        scanf("%d",&day);
        if(day==t)
        {
            printf("恭喜你猜中了");
            break;
        }
        else if(day<t)
            printf("你猜的日期早了,幸运日还没到\n");
        else
            printf("你猜的日期晚了,幸运日已经溜走了\n");
        if(i<2)
            printf("再猜:");        
    }
    printf("偷偷告诉你,你的幸运日是%d号",t);
    return 0; 
}

posted on 2020-11-15 23:12  错码编程师  阅读(60)  评论(1编辑  收藏  举报