实验2

任务1

  • 源代码
点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 100
#define CNT 5

int main() 
{
    int
 number;
    int
 i;

    srand(time(0));     // 以当前系统时间作为随机种子
    for(i = 0
; i < CNT; ++i) {
        number = 
rand() % N + 1
;
        printf("20490042%04d\n"
, number);
    }

    return 0
;
}
  • 运行截图

屏幕截图 2026-10-31 122544

  • 回答问题
    1.功能:随机获得编号
    2.line14:获得0-100的数字
    3.%04d:输出宽度为四的数字,空部分用0代替,数字右对齐
    4.line12:生成随机数

任务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
;
}
  • 运行截图

屏幕截图 2026-10-31 123157

  • 回答问题
    1.下次再来一次的总价会加上上一次总价
    2.continue:结束continue下面语句,进入下一个循环

任务3

  • 源代码
点击查看代码
#include<stdio.h>
int main()
{
	char
 ans;
	while(1
)
	{
		scanf("%c"
,&ans);
		switch
(ans){
			case 'r':printf("stop!\n");getchar();break
;
			case 'g':printf("go go go\n");getchar();break
;
			case 'y':printf("wait a minute\n");getchar();break
;
			default:printf("something must be wrong...\n");getchar();break
;
		}
	}
	
	return 0
;
}

 
  • 运行截图

屏幕截图 2026-10-31 123547

任务4

  • 源代码
点击查看代码
#include<stdio.h>
int
 main()
{
	double a=
1.0,sum=0,max,min
;
	printf(
"输入今日开销,直到输入-1终止:\n"
);
	scanf(
"%lf"
,&a);
	max
=a;
	min
=a;
	if(a!=-1
){
		while(a!=-1
)
		{
			if(a>max
){
				max
=a;
			}
			if(a<min
){
				min
=a;
			}
			sum
+=a;
			scanf(
"%lf"
,&a);
		}
		printf(
"今日累计消费总额:%.1f\n",sum
);
		printf(
"今日最高一笔开销:%.1f\n",max
);
		printf(
"今日最低一笔开销:%.1f\n",min
);
	}
	return 0
;
}


  • 运行截图

屏幕截图 2026-10-31 123752

任务5

  • 源代码
点击查看代码
#include<stdio.h>
int main()
{
	int
 a,b,c,a2,b2,c2;
	for(int i=5;i!=0
;--i){
		scanf("%d%d%d"
,&a,&b,&c);
		if
(a+b>c&&a+c>b&&b+c>a){
			if
(a==b&&b==c){
				printf("等边三角形\n"
);
			}
			else if
(a==b||b==c||a==c){
				printf("等腰三角形\n"
);
			}
			else if
(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
				printf("直角三角形\n"
);
			}
			else
{
				printf("普通三角形\n"
);
			}
		}
		else
{
			printf("不能构成三角形\n"
);
		}
	}
	return 0
;
}
  • 运行截图

屏幕截图 2026-10-31 124045

任务6

  • 源代码
点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	int
 num,a;
	srand(time(0
));
	num=
rand()%30+1
;
	
	printf("猜猜2026年11月哪一天是你的lucky day\n"
);
	printf(" \n"
);
	printf("开始喽,你有3次机会,猜吧(1~30):"
);
	scanf("%d"
,&a);
	for(int i=2
;i;--i){
		if
(a<num){
			printf(" \n"
);
			printf("你猜的日期早了,你的lucky day还没到呢\n"
);
			printf(" \n"
);
			printf("再猜(1~30):"
); 
			scanf("%d"
,&a);
		}
		else if
(a>num){
			printf(" \n"
);
			printf("你猜的日期晚了,你的lucky day在前面哦\n"
);
			printf(" \n"
);
			printf("再猜(1~30):"
);
			scanf("%d"
,&a);
		}
		else
{
			printf(" \n"
);
			printf("哦,猜中了\n"
);
			break
;
		}		
	}
	printf(" \n"
);
	printf("次数用光啦,11月你的lucky day是%d号"
,num);
	return 0
;
}
  • 运行截图

屏幕截图 2026-10-31 124451

posted @ 2026-10-31 12:47  罗程  阅读(14)  评论(0)    收藏  举报