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

问题1:在N1到N2间生成一个随机数赋值给random_no

问题2:在1到N3间生成一个随机数赋值给random_no

问题3:生成班级里一个学生的学号

 

任务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;
} 

 

任务3:

#include <stdio.h>

int main() {
    char ch;
    
    while(scanf("%c",&ch) != EOF) {
        getchar();
        if(ch == 'r')
            printf("stop!\n");
        else if(ch == 'g')
            printf("go go go\n");
        else if(ch == 'y')
            printf("wait a minute\n");
        else
            printf("something must be wrong...\n");
    }
} 

 

任务4:

#include <stdio.h>

int main() {
    double expense,total = 0.0,maxExpense = 0.0,minExpense = 20000.0;
    printf("输入今日开销,直到输入-1终止:\n");
    while(1){
        scanf("%lf",&expense);
        if(expense == -1){
            break;
        }
        if(expense > maxExpense){
            maxExpense = expense;
        }
        if(expense < minExpense){
            minExpense = expense;
        }
        total +=expense;
    }
    printf("今日累计消费总额:%.1lf\n",total);
    printf("今日最高一笔开销:%.1lf\n",maxExpense);
    printf("今日最低一笔开销:%.1lf\n",minExpense);
    return 0;
}

 

任务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*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
            printf("直角三角形\n"); 
        else if(a==b&&b==c) 
            printf("等边三角形\n");
        else if(((a==b)&&(b!=c))||((a==c)&&(c!=b))||((b==c)&&(c!=a)))
            printf("等腰三角形\n"); 
        else
            printf("普通三角形\n"); 
    }
}

 

任务6:

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

int main(){
    int day,luckyday,times = 3;
    srand(time(NULL));
    luckyday = rand() % 30 + 1;
    printf("猜猜2024年11月哪一天会是你的 lucky day \n");
    printf("开始喽,你有三次机会,猜吧(1~30):");
    while(times>0){
        scanf("%d",&day) ;
        if(day==luckyday){
            printf("哇,猜中了:)\n");
            return 0;
        }
        else if(day<luckyday){
            printf("你猜的日期早了,你的 lucky day 还没到呢\n");
            printf("再猜(1~30):"); 
        }
        else{
            printf("你猜的日子晚了,你的 lucky day 还在前面哦\n");
            printf("再猜(1~30):"); 
        }
        times --;    
    }
    if(times==0){
        printf("次数用光啦。偷偷告诉你,11月你的lucky day是%d号",luckyday);
    }
}

 

posted @ 2024-10-09 21:43  无所事事的旅客  阅读(5)  评论(0编辑  收藏  举报