实验3 c语言的分支结构、循环语句、函数综合应用编程1

实验一

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 5

int main() 
{
    int x,n;
    
    srand(time(0));   //以当前系统时间作为随机种子
    
    for(n=1;n<=N;n++)
    {
        x=rand()%100;  //生成一个0~99之间的随机整数
        printf("%3d",x); 
     } 
     printf("\n");
     return 0;
}

 

 

实验二

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 1

int main()
{
    int x,n,a;
    printf("猜猜2021年5月哪一天会是你的luck day\n");
    printf("开始喽,你有三次机会,猜吧(1~31):\n");
    srand(time(0));
    x=rand()%30+1;
    for(n=1;n<=3;n++)
    {
        scanf("%d",&a);
        if(a>x)
        {
            printf("你猜的日期晚了,luck day悄悄跑溜到前面啦\n");
        }
        else if(a<x)
        {
            printf("你猜的日期早了,luck day还没到呢\n");
        }
        else
        break;
    }
    printf("次数用完啦,偷偷告诉你:5月,你的luck day是%d号",x);
    return 0;
    
 }
 
  

 

 

实验三

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

 

 

实验四

#include<stdio.h>
#include<math.h> 
void solve(double a,double b, double c);

int main()
{
    double a,b,c;
    printf("Enter a,b,c:");
    while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
    {
        solve(a,b,c);
        printf("Enter a,b,c:");
    }
    
    return 0;
}


void solve(double a,double b, double c)
{
    double x1,x2;
    double delta,real,imag;
    
    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",x1,x2);
        }
        else
        {
            real=-b/(2*a);
            imag=sqrt(-delta)/(2*a);
            printf("x1=%.2f+%.2fi,x2=%.2f-%.2fi\n",real,imag,real,imag);
        }
     } 
}

不能,返回值只能返回一个值,而一元二次方程的根有两个而且还分实部和虚部两部分

 

实验五

#include<stdio.h>
double fun(int n);

int main()
{
    int n;
    double s;
    
    printf("Enter n(1~10):");
    while(scanf("%d",&n)!=EOF)
    {
        s=fun(n);
        printf("n=%d,s=%f\n\n",n,s);
        printf("Enter n(1~10):");
    }
    return 0;
}


double fun(int n)
{
    int a,sum,b;
    double result;
    b=1;
    sum=1;
    result=0;
    for(a=1;a<=n;a++)
    {
    sum=sum*a;
    result=result+b*1.0/sum;
    b=-b;
    
    }
    return result;
}

 

实验六

#include<stdio.h> 
#include<math.h> 
#include<stdlib.h> 
int isPrime(int n);

int main()
{
    int x,y;
    int c=0;
    for(x=101;x<200;x++)
    {
    
    y=isPrime(x);
    if(x==y) 
            {printf("%d ",y,c++);
    
        
        if(c%5==0)
        printf("\n");} 
    
    }
    printf("\n100到200之间的素数个数为:%d\n",c);
    return 0;
}


int isPrime(int n)
{
    int i,m,s;

    m=sqrt(n);
    for(i=2;i<=m;i++)
    {
        if(n%i==0)
        break;
    }
    if(i>m&&n>1)
        
    {
        s=n;
        return s;
    }
    else
    return 0;
}

 

 

要把细节处理好,不然最后一个程序会毁在一个细节上

 

posted @ 2021-04-15 21:31  朱天禄  阅读(118)  评论(2编辑  收藏  举报