实验3 C语言分支语句和循环语句编程应用

#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;
}

 

 

#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>
int main()
{
    int i=2,j=101;
    int temp=0,sum=0,count=0;
    for(;(j<=200)&&(i<=j);i++)
    {
        temp=0;
        if(j%i==0)
        {
            i=2;
            j++;
            continue;
        }
        else
        {
            temp+=1;
            if(temp==j-i)
            {
                printf("%d ",j);
                count+=1;
                if(count==5)
                {
                    printf("\n");
                    count=0;
                }
                sum+=1;
                i=2;
                j++;
                continue;
            }
        }
    }
    printf("\n");
    printf("101~200之间共有%d个素数",sum);
    printf("\n");
    return 0;
}

 

 

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

 

算法思路:

1. 将输入的数字对10取余,即可取出最后一位数字,并用if语句对该数字进行判断,如果对2取余不等于0,即为奇数;

2. 使用一个数字m,在取出每位奇数d后,乘以该数,并在每次循环过后自乘10,即可确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位。

 

#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    printf("Enter n(1~10):");
    while(scanf("%d",&n)!=EOF)
    {
        if(n<'1'||n>'10')
        {
            return 1;
        }
        double s=0,temp=0,jc=1;
        int i;
        for(i=1;i<=n;i++)
        {
            temp=pow((-1.0),(i+1));
            jc*=i;
            s+=temp*(1.0/jc);
        }
        printf("n=%d,s=%lf",n,s);
        printf("\n");
        printf("\n");
        printf("Enter n(1~10):");
    }
    return 0;
}

 

 

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

 

posted @ 2020-11-17 20:46  刘子涵  阅读(152)  评论(0)    收藏  举报