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

回答问题:
问题1:使生成的数真正达到随机的效果,如果去掉每次生成的数都一样
问题2:抽签,从班级中抽出一些人的学号
实验任务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;
}

回答问题:
问题1:使单次购买总价清零,不影响下一次使用,如果去掉,下一次使用时商品价格会包含之前交易总和
问题2:立即结束本次循环,直接跳到开头,开始下一次循环
实验任务3
代码:
点击查看代码
#include<stdio.h>
int main()
{
char color;
while(scanf(" %c",&color)!=EOF){
if(color=='y')
printf("wait a minute\n");
else if(color=='g')
printf("go go go\n");
else if(color=='r')
printf("stop!\n");
else
printf("something must be wrong...\n");
}
return 0;
}

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

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

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


浙公网安备 33010602011771号