实验2

任务一

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

	}



	system("pause");
    return 0;

}

image

问题1:为了使每次获得的数组不同。问题2:将变化的时间传递给rand()

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

image
问题1:total_price 则未声明,程序无法运行
问题2:终结本次循环,进行下次循坏

任务三

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

image

任务四

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

	return 0;
	
}

image

任务五

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

image

任务六

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

image

image

posted @ 2025-10-19 16:57  Wedros  阅读(3)  评论(0)    收藏  举报