实验任务三

实验一
#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; }

实验二

// 生成N个0~99之间的随机整数,并打印输出 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5

int main() {
    int x, n, i; 
    printf("猜猜2021年5月哪一天会是你的 Lucky Day\n开始喽,你有三次机会,猜吧(1~31):");
    srand(time(0));  // 以当前系统时间作为随机种子 
    x =1+ rand() % 31;  // 生成一个1~31之间的随机整数
    
    for (i=1;i<=3;){
    
        scanf("%d",&n);
             if (n==x){
                  printf("猜对啦!\n");
            break;
            
            }
        
            else if (n<x){
                   printf("你猜的日期早了,Luck Day还没到呢。\n");
                
            }
                         
            else {
            
                printf("你猜的日期晚了,Luck Day悄悄溜到前面啦。\n"); 
                
                }
            
            i++;    
            printf("再猜(1~31):");    
            
    if (i>3)
        printf("次数用完啦,偷偷告诉你:5月,你的Luck Day是%d号。\n",x);
               
    }
        
    return 0;
} 

实验三

 

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

 

实验四

// 一元二次方程求解(函数实现方式)
// 重复执行, 直到按下Ctrl+Z结束 

#include <math.h>
#include <stdio.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;
}

// 函数定义
// 功能:求解一元二次方程,打印输出结果
// 形式参数:a,b,c为一元二次方程系数 
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);
        }
    }    
}

否,当delta>0时,方程有两个根,但函数的返回值只能有一个。

实验五

#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) {
    double s;
    int i,f=1,z=1;
    for(i=1,s=0;i<=n;)
    {
        f=f*i;
        s=s+z*1.0/f;
        z=-z;
        i++;
    }
    return s;
}

 

实验六

#include<stdio.h>
#include<math.h>
int isprime(int n);
int main (){
    int n,col=1,m=0;
    for(n=101;n<=200;n++)
    {
        if(isprime(n))
        {
            printf("%d ",n);
            col++;
            m++;
            if(col%6==0)
            {
            printf("\n");
            col=1;            
            }
        }
    }
    printf("\n101~200之间素数个数为:%d\n",m);
        
    return 0;
}

int isprime(int n){
    int k;
    for(k=2;k<=sqrt(n);k++)
    {
        if(n%k==0)
            return 0;
    }
    return 1;    
}

 

posted @ 2021-04-13 20:57  临Lin  阅读(108)  评论(3)    收藏  举报