0e82216

导航

实验2

task1

点击查看代码
#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_major=rand()%N1+1;
		printf("20256343%04d\n",random_no);
		}
		else
		{
		random_no=rand()%N2+1;
		printf("20256136%04d\n",random_no);
		}
		cnt++;
	}
	return 0;
}

-1-1
删去srand(time(NULL)) ;后结果均为上图
-1-2

-1-3

1.获取系统时间以作为随机数的种子,删去后随机数的取值固定
2.生成五个随机学号
task2

点击查看代码
#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;
}

-2-2
上图为删去后

-2-1
1.删去后导致多次购买中总价叠加
2.line22中用于重新执行输入饮料编号;line30中用于重新执行输入购买数量
task3

点击查看代码
#include <stdio.h>
int main()
{
	char i;
	while(1)
	{
		i=getchar();
		getchar();
	    if(i=='r')
		{
	    	printf("stop!\n");
		}
    	else if(i=='g')
		{
		printf("go go go\n");
	    }
		else if(i=='y')
		{
		printf("wait a minute\n");
	    }
	    else
		{
		printf("something must be wrong...\n");
    	}
	}
	return 0;
}

1
task4

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

2
task5

点击查看代码
#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*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||a==c||b==c)
			{
				printf("等腰三角形\n"); 
			}
			else
			{
				printf("普通三角形\n");
			}
		}
		else
		{
			printf("不能构成三角形\n");
		}
	}
	return 0;
 } 

3
task6

点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	int day,i,n;
	n=0;
	srand(time(NULL)) ;
	day=rand()%29+1;
	//printf("lucky day=%d\n",day) ;
	printf("猜猜2025年11月哪一天是你的lucky day\n开始喽,你有三次机会,猜吧(1~30):");
	
	while(1)
	{
		if(n<3)
		{
			scanf("%d",&i);
			if(i==day)
			{
				printf("哇,猜中了:)\n");
				break;
			}
			else if(i>day)
			{
				printf("你猜的日期晚了,你的lucky day在前面哦\n");
			}
			else
			{
				printf("你猜的日期早了,你的lucky day还没到呢\n");
			}
			n++;
			printf("再猜:");
		}
		else
		{
			printf("次数用光啦。偷偷告诉你,11月你的lucky day是%d号\n",day);
			break;
		}
	}
	return 0;
}

6-1

6-2

posted on 2025-10-14 21:53  一条小鲫鱼吖  阅读(4)  评论(0)    收藏  举报