实验2

task.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;
}

 

 

问题一:随机生成397~476之间一个数

问题二:随机生成1~21之间一个数

问题三:将随机数作为后尾组合生成学号

 

task.2


// 一元二次方程求解
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double delta, p1, p2; // 用于保存中间计算结果
while(scanf("%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;
}

 

 

task.3

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

 

task.4

#include <stdio.h>

int main() {
double max, min, a, b;
max = 0;
min = 20000;
b = 0;
printf("输入今日开销,直到输入-1终止\n");
while (scanf("%lf", &a)!= EOF) {
if (a == -1) break;
if (a > max) max = a;
if (a < min) min = a;
b = b + a;
}
printf("今日累计消费总额: %.1lf\n", b);
printf("今日最高一笔开销: %.1lf\n", max);
printf("今日最低一笔开销: %.1lf\n", min);
return 0;
}

 

task.5

#include <stdio.h>

int main() 
{
    int a, b, c;

    while (scanf("%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;
}

 

 

 

task.6

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

int main() {
    srand(time(NULL));
    int luckyDay = rand() % 30 + 1;
    int guess;
    int attempts = 3;

    printf("猜猜 2024 年 11 月哪一天会是你的 lucky day\n开始喽,你有三次机会,猜吧(1~30):");

    while (attempts > 0) {
        scanf("%d", &guess);
        if (guess == luckyDay) {
            printf("哇,猜中了:)\n");
            return 0;
        } else if (guess < luckyDay) {
            printf("你猜的日期早了,你的 lucky day 还没到呢。\n");
            attempts--;
            if (attempts > 0) {
                printf("再猜(1~30):");
            }
        } else {
            printf("你猜的日期晚了,你的 lucky day 在前面哦。\n");
            attempts--;
            if (attempts > 0) {
                printf("再猜(1~30):");
            }
        }
    }

    if (attempts == 0) {
        printf("次数用光啦。偷偷告诉你,11 月你的 lucky day 是 %d 号。\n", luckyDay);
    }

    return 0;
}

 

 

posted @ 2024-10-11 00:00  滕宏正  阅读(9)  评论(0编辑  收藏  举报