实验2
实验任务1
task1.c
代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main(){
	int number;
	int i;
	srand(time(0));
	for(i = 0;i<N; ++i) {
		number = rand() % 100 +1;
		printf("20490042%04d\n",number);
	}
	system("pause");
	return 0;
}
截图

问题
1.随机1~100的数字
2.在随机出来的数字前面加零直到有四个数字
3.随机挑选学号
实验任务2
task2.c
代码
#include <stdio.h>
#include <stdlib.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;
		}
		switch (choice) {
			case 1:
			case 2:
				total_price += 3 * quantity;
				break;
			case 3:
				total_price += 5 * quantity;
				break;
			case 4:
				total_price += 2 * quantity;
				break;
		}
		printf("请投入金额: ");
		scanf("%f", &amount_paid);
		change = amount_paid - total_price;
		printf("本次购买总价: %.2f 元\n", total_price);
		printf("找零:%.2f 元\n",change);
		total_price = 0;
	}
	printf("感谢您的购买, 欢迎下次光临! \n");
	system("pause");
	return 0;
}
截图

问题
1.清零总价。如果去掉第二次将会加上第一次的总价
2.break是跳出循环体,结束循环执行后面的程序;continue是跳过循环中剩余的语句,开始下一次循环
3.不需要。line20-22已经进行过choice的错误排查。
实验任务3
task3.c
代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char ans;
    while(scanf(" %c",&ans)!=EOF)
	{
    switch(ans)
		{
        case('y'):printf("wait a minute\n");
        break;
        case('r'):printf("stop!\n");
        break;
        case('g'):printf("go go go\n");
        break;
        default:printf("something must be wrong...\n");
       }
    }
	system("pause");
	return 0;
}
截图

实验任务4
task4.c
代码
#include <stdio.h>
#include <stdlib.h>
int main(){
	double n,sum,max,min;
	scanf("%lf",&n);
	max=n;
	min=n;
	sum=0;
	while (n!=-1)
{
	sum+=n;
	if (n>max)
	max=n;
	if (n<min)
	min=n;
	scanf("%lf",&n);
}
    printf("今日累计消费总额: %.1f\n",sum);
    printf("今日最高一笔开销: %.1f\n",max);
    printf("今日最低一笔开销: %.1f\n",min);  
	system("pause");
	return 0;
}
截图

实验任务5
task5.c
代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
    int day,ans,i;
    srand(time(0));
    day=rand()%30+1;
    printf("猜猜2025年4月哪一天是你的lucky day\n");
    printf("开始了,你有三次机会,猜吧(1-30):\n");
    for(i=1;i<=3;i++)
	{ 
        scanf("%d",&ans);     
        if(ans>day)
        printf("你猜的日期晚了,你的lucky day在前面哦(1-30)\n");
        if(ans<day)
        printf("你猜的日期早了,你的lucky day还没到呢(1-30)\n");
        if(ans==day)
		{
        printf("哇,猜中了:-)\n");
        break;
		}
        if(i==3)
        printf("次数用完了,偷偷告诉你,你的lucky day是: %d\n",day);
    }
	system("pause");
	return 0;
}
截图

实验任务6
task6.c
代码
#include <stdio.h>
#include <stdlib.h>
int main() {
    int n, i, j, k;
    printf("input n: ");
    scanf("%d", &n);
		for (i = n; i >= 1; i--) {
        for (j = 0; j < n - i; j++) {
            printf("   ");
        }
        for (k = 0; k < i; k++) {
            printf("  0  ");
        }
        printf("\n");
        for (j = 0; j < n - i; j++) {
            printf("   ");
        }
        for (k = 0; k < i; k++) {
            printf(" <H> ");
        }
        printf("\n");
        for (j = 0; j < n - i; j++) {
            printf("   ");
        }
        for (k = 0; k < i; k++) {
            printf(" I I ");
        }
        if (i > 1) {
            printf("\n");
        }
    }
	system("pause");
	return 0;
}
截图

实验总结:
实验6小人好像没有对齐,等老师上课讲。
                    
                
                
            
        
浙公网安备 33010602011771号