实验2

实验任务1

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
#define N1 80
#define N2 35
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() % N1 + 1;
            printf("20256343%04d\n", random_no);
        }
        else {

            random_no = rand() % N2 + 1;
            printf("20256136%04d\n", random_no);
        }
        cnt++;
    }
    return 0;
}
屏幕截图 2025-10-19 135911

问题1srand(time(NULL));作用是随机给出5个不同的数字,如果去掉给出的数字将一直不变。

问题2从2个班中随机抽出5个学号。

实验任务2
#include <stdio.h>
 int main() {
    int choice, quantity;
    float total_price = 0, amount_paid, change;
    while (1) {
        printf("\n自动饮料售卖机菜单:\n");
        printf("1. 可乐 - 3 元/瓶\n");
        printf("2. 雪碧 - 3 元/瓶\n");
        printf("3. 橙汁 - 5 元/瓶\n");
        printf("4. 矿泉水 - 2 元/瓶\n");
        printf("0. 退出购买流程\n");
        printf("请输入饮料编号: ");
        scanf("%d", &choice);
        if (choice == 0)
            break;
        if (choice < 1 || choice > 4) {
            printf("无效的饮料编号,请重新输入。\n");
            continue;
        }
        printf("请输入购买的数量: ");
        scanf("%d", &quantity);
        if (quantity < 0) {
            printf("购买数量不能为负数,请重新输入。\n");
            continue;
        }
        if(choice == 1 || choice == 2)
            total_price += 3 * quantity;
        else if(choice == 3)
            total_price += 5 * quantity;
        else
            total_price += 2 * quantity;
        printf("请投入金额: ");
        scanf("%f", &amount_paid);
        change = amount_paid - total_price;
        printf("本次购买总价: %.2f 元\n", total_price);
        printf("找零: %.2f 元\n", change);
        total_price = 0;
    }
    printf("感谢您的购买,欢迎下次光临!\n");
    return 0;
 }

屏幕截图 2025-10-19 141402

屏幕截图 2025-10-19 141410

问题1影响下一次计算结果

问题2终止这次程序回到开始处重新输入进行下一次循环

试验任务3

int main() {
     symbol=getchar();
     while(symbol!=EOF){
   
    if(symbol=='r')
    {
     printf("stop!\n");
    symbol=getchar();
    }
    else if(symbol=='y'){
    printf("wait a minute\n");
    symbol=getchar();
    }
    else if(symbol=='g'){
    printf("go go go\n");
    symbol=getchar();
    }
    else{
    printf("something must be wrong...\n");
    symbol=getchar();
    }
    symbol=getchar();
    }
    return 0;
 }

屏幕截图 2025-10-19 145115

实验任务4

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

屏幕截图 2025-10-19 152148

实验任务5

#include<stdio.h>
int main(){
    int a,b,c;
    while(1){
        scanf("%d %d %d",&a,&b,&c);
        if(a+b>c&&a+c>b&&b+c>a){
            if(a==b&&b==c){        
            printf("等边三角形");
            } 
            else if(a==b||b==c||a==c) {
            printf("等腰三角形");
            }
            else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
                printf("直角三角形");
            }
            else
            printf("普通三角形"); 
        }
        else
        printf("不能构成三角形");
    }
    
        return 0;

屏幕截图 2025-10-19 154418

实验任务6

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

int main(){
    srand(time(NULL));
    int luckyday;
    luckyday = rand() % 30 + 1;
    int n;
    printf("猜猜2025年11月哪一天是你的lucky day\n");
    printf("开始喽,你有三次机会,猜吧(1~30):\n");
    for(int i = 3;i > 0;i--){
        scanf("%d",&n);
        if(n == luckyday){
            printf("哇塞猜中了欸,你真棒"); 
            break;
        }
        else if(n > luckyday){
            printf("你猜的日期太晚了,luckyday在前面呢");
        }
        else if(n < luckyday){
            printf("你猜的日期太早了,luckyday在后面呢");
        }
        if(i == 1){
            printf("次数用光啦,偷偷告诉你,11月的luckyday是%d号",luckyday);
            break;
        }
    }
    return 0; 
}

屏幕截图 2025-10-19 154818

屏幕截图 2025-10-19 154908

 


 

 

posted @ 2025-10-19 15:51  付小  阅读(5)  评论(0)    收藏  举报