实验2

任务1

源代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 5
#define N1 397
#define N2 476
#define N3 21

int main() {
    int cnt;
    int random_major, random_no;

    srand(time(NULL));      // 以当前系统时间作为随机种子

    cnt = 0;
    while (cnt < N) {
        random_major = rand() % 2;

        if (random_major) {
            random_no = rand() % (N2 - N1 + 1) + N1;
            printf("20248329%04d\n", random_no);
        }
        else {
            random_no = rand() % N3 + 1;
            printf("20248395%04d\n", random_no);
        }

        cnt++;
    }

    return 0;
}

运行结果

问题一 a:生成379~476间的随机数

问题二a:生成1~21间的随机数

问题三a:随机在两个班中抽取5个人

任务二

源代码

#include <stdio.h>
#include <math.h>

int main() {
    double a, b, c;
    double delta, p1, p2; // 用于保存中间计算结果

    while (scanf_s("%lf%lf%lf", &a, &b, &c) != EOF) {
        if (a == 0) {
            printf("a = 0, invalid input\n");
            continue;
        }

        delta = b * b - 4 * a * c;
        p1 = -b / 2 / a;
        p2 = sqrt(fabs(delta)) / 2 / a;

        if (delta == 0)
            printf("x1 = x2 = %.2g\n", p1);
        else if (delta > 0)
            printf("x1 = %.2g, x2 = %.2g\n", p1 + p2, p1 - p2);
        else {
            printf("x1 = %.2g + %.2gi, ", p1, p2);
            printf("x2 = %.2g - %.2gi\n", p1, p2);
        }
    }

    return 0;
}

运行结果

任务三

源代码

#include<stdio.h>
int main() {
    char a;
    while (scanf_s("%c", &a) != EOF) {
        if (a == 'r') {
            printf("stop!\n");
            getchar();
        }
        else if (a == 'g') {
            printf("go go go\n");
            getchar();
        }
        else if (a == 'y') {
            printf("wait a minute\n");
            getchar();
        }
        else {
            printf("something must be wrong\n");
            getchar();
        }
    }
    return 0;
}

运行结果

任务四

源代码

#include<stdio.h>
#include<stdlib.h>
float max(float n, float m) {
    return (n > m) ? n : m;
}
float min(float n, float m) {
    return (n < m) ? n : m;
}
int main() {
    float i, input, sum = 0;
    float m = 0;
    float q = 32767.0;
    printf("输入今日开销,直到输入-1终止\n");
    for (i = 0; scanf_s("%f", &input) && input != -1; i++) {
        sum += input;
        m = max(m, input);
        q = min(q, input);

    }
    printf("今天累计消费:%.1f\n", sum);
    printf("今日最高一笔开销:%.1f\n", m);
    printf("今日最低一笔开销:%.1f\n", q);
    system("pause");
    return 0;
}

运行结果

任务五

源代码

#include<stdio.h>
int main()
{
    int n, a, b, c;

    
    while (scanf_s("%d%d%d", &a, &b, &c) != EOF) {

        if (a + b <= c || a + c <= b || b + c <= a) {
            printf("不构成三角形\n");
        }
        else if (a == b && b == c) {
            printf("正三角形\n");
        }
        else if (a == b || a == c || b == c) {
            printf("等腰三角形\n");
        }
        else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
            printf("直角三角形\n");
        }
        else {
            printf("普通三角形\n");
        }
    }
    return 0;
}

运行结果

任务六

源代码

#include<stdio.h>
#include<stdlib.h>
int main() {
    printf("猜猜2024年11月哪天会是你的lucky day\n");
    int i = 0, a, n;
    printf("开始喽,你有3次机会,猜吧(1~30):");
    n = rand() % 31;
    while (i < 2) {
        ++i;
        scanf_s("%d", &a);

        if (a < n) {
            printf("你猜的日期早了,你的lucky day还没到呢\n");
            printf("再猜:");

        }
        else if (a > n) {
            printf("你猜的日期晚了,你的lucky day在前面哦\n");
            printf("再猜:");


        }
        else if (a == n) {
            printf("哇,猜中了:)\n");
            system("pause");
            exit(0);

        }

    }
    scanf_s("%d", &a);


    if (a < n) {
        printf("你猜的日期早了,你的lucky day还没到呢\n");


    }
    else if (a > n) {
        printf("你猜的日期晚了,你的lucky day在前面哦\n");



    }
    else if (a == n) {
        printf("哇,猜中了:)");

    }
    printf("次数用光啦,偷偷告诉你,你的幸运数字是%d\n", n);


    system("pause");
    return 0;
}

运行结果

 

posted @ 2024-10-09 23:42  石宇昊  阅读(11)  评论(0编辑  收藏  举报