实验三

任务1.

// 生成N个0~99之间的随机整数,并打印输出 
#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;
} 

for循环的作用:生成五个随机的数据。

line13改为x=rand()%31

任务二

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int x,n,a;
    printf("来猜猜你五月的幸运日吧\n");
    printf("由此输入答案:\n");
    srand(time(0));
    x=rand()%31+1;
    scanf("%d",&a);
    for(n=1;n<3;n++)
    {
        if(x>a)
        {
            printf("你猜早了哦\n");
            scanf("%d",&a);
        }
        else if(x<a)
        {
            printf("你猜晚了哦\n");
            scanf("%d",&a);
        }
        else
        {
            printf("真的牛蛙!\n");
            break; 
        }
     }
     if(n=3)
     {
         printf("你的五月幸运日是%d号",x);
      }
      return 0; 
}

任务三

#include<stdio.h>
int main()
{
    long long a,b;
    printf("请输入你想要的数字;\n");
    while(scanf("%ld",&a)!=EOF)
    {
        long long d=1;
        long long c=0;
        while(a!=0)
        {
            if((a%10)%2!=0)
            {
                b=a%10;
                c=c+b*d;
                d=d*10;
            }
            a=a/10; 
         }
         printf("最终的结果是%lld\n",c);
         printf("do it again:\n"); 
         
        
          
        
    }
    
    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);
        }
    }    
}

 否,

 任务五

#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 i,k,b,j;
    double sum,x;
    int sign=1;
    k=1;
    b=1;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            b*=j;
        }
        x=1.0/b;
        sum=sum+sign*x;
        sign=-sign;
        k++;
    }
    return sum;
}

任务六

#include<stdio.h>
#include<math.h>
int isprime(int n);
int main()
{
    int i;
    for(i=101;i<=200;i++)
    {
        if(isprime(i))
        {
            printf("%4d",i);
        }
        
    }
    return 0;
}
isprime(int n)
{
    int k;
    for(k=2;k<=sqrt(n);k++)
    if(n%k==0)
    return 0;
    return 1;
}

posted on 2021-04-14 17:24  Mrfixer  阅读(75)  评论(4)    收藏  举报