实验2

1. task 1

问题1:解释line 13代码的功能:生成1-100之间的随机数;

问题2:解释line 14使用格式符%04d起到什么作用:生成的随机数转化成4位;

问题3:这个程序的功能是什么:从这组学生中抽取5个人。

2.task 2

问题1:line53代码的用途:将总金额重置位0; 如果去掉,会有什么影响:上一个人购买的金额会叠加到下一个人上面;

问题2: line17-18, 使用了break语句;line20-23, line28-31, 使用了continue语句。在循环中使用break和continue有什么区别:break指的是跳出整个循环,而continue指的是结束本次循环其他的代码,但是要继续完成下一轮循环;

问题3: line33-44,使用了switch语句实现多分支。通常情况下,在switch语句中使用default子句有利于代码运行时错误排查,这个程序中,是否有必要增加default子句:没有必要,因为前面已经排查过饮料数量的编号不合法的情况。

3. task 3:

代码:

#include<stdio.h> 
int main(){
	char sig;
 
	
	while(scanf("%c",&sig)!=EOF){
		if(sig=='r'){
			printf("stop!\n");
			getchar();
		}else if(sig=='g'){
			printf("go go go\n");
			getchar();
		}else if(sig=='y'){
			printf("wait a minute\n");
			getchar();
		}else{
			printf("something must be wrong...\n");
			getchar();
		}
	}
	
	
	
	
	
	
	
	
	
	return 0;
}

  截图:

 

 

4.task 4:

代码:

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

  截图:

 

5. task 5:

 代码:

#include<stdio.h> 
#include<stdlib.h>
#include<time.h>
int main(){
	int n=0;
	int day;
	int number;
	
	srand(time(0));
	day=rand()%30+1;
	printf("猜猜2025年4月哪一天是你的lucky day\n");
	printf("开始咯,你有3次机会,猜吧(1-30):"); 
	while(n<3){
		scanf("%d",&number);
		n++;
		if(number<day){
			printf("你猜的日期早了,你的lucky day还没到呢\n");
			
		}else if(number>day) {
			printf("你猜的日期晚了,你的lucky day在前面哟\n");
		 
		}else{
			printf("哇,猜中了\n");
			break;
		}
		if(n<3)printf("再猜(1-30):"); 
 
	}
	if(n==3){	
	printf("你的次数用完了。偷偷告诉你,4月你的lucky day是%d号",day);
		
	}

	
	return 0;}

  

截图:

 

 

6. task 6:

代码:

#include<stdio.h>
int main()
{
	int n,i,j,k;           //n鏄緭鍏ユ暟锛沬鏄ぇ鐨勮鏁帮紝鍜宯鐩哥瓑锛沰鏄皬琛屾暟锛屾瘡澶ц閲屾湁涓夊皬琛岋紱j鏄垪鏁?
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		for(k=1;k<=3;k++){
			for(j=1;j<2*n;j++){
			   if(j<i){
				  printf(" \t");	
			   }
			   else if(j>=i&&j<=2*n-i){
				   if(k==1)printf(" 0 \t");
				   if(k==2)printf("<H>\t");
				   if(k==3)printf("I I\t");
			   }
		    }
		    printf("\n");
		}
	
		printf("\n");
	}
	return 0;
}

  截图:

 

posted @ 2025-03-19 23:18  hahahaha13  阅读(3)  评论(0)    收藏  举报