题目
原题
张三上班
张三在上班途中, 可以选择走路和汽车两种方式
但他不清楚哪种方式比较快, 因为骑车需要找车, 开锁, 停车 需要耽搁很多时间.
设找到自行车, 开锁, 骑上自行车需要花27秒, 停车需要花23秒
步行每秒1.2米, 骑车每秒3.0米
给出张三距离公司的距离, 请问是骑车快还是走路快.
输入:
一个整数, 表示到公司的距离
输出:
如果骑车快, 输出"建议骑车"
如果走路快, 输出"建议走路"
如果一样快, 输出"骑车或走路都行"
开题
输入距公司的距离->计算骑车与走路的时间并比较->输出结果
代码
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
void Int(double* a); //对输入数据进行判断
int main()
{
double t1 = 50, t2 = 100, v1 = 3, v2 = 20, v0 = 1.2; //定义骑车、开车准备与结束所花时间总和 以及骑车、开车与步行的速度
double x; //距离
int choice; //确认修理选项
double time1, time2, time0; //计算骑自行车、开奔驰与步行所花时间
int money = 5000; //初始钱数
int durable1 = 5; //自行车耐久
int i = 0, j = 0, k = 0; //成就判断
int day = 1; //天数
system("title 平平无奇-张三上班路");
while(1)
{
printf("****************************************************\n");
printf("* 第%d周\t身份:【打工人】\t金钱:%d *\n", day, money);
printf("****************************************************\n");
printf("你是【张三】,一个平凡的上班族\n打工人打工魂,打工的都是人上人\n为了更高效地上班,请选择打工地点距离您的距离(米)以便选择高效的上班方式\n请输入(保留两位小数):\n");
Int(&x);
fflush(stdin);
printf("距离为:%.2lfm\n", x);
choice = 0; //修理选项的默认值
time1 = t1 + x / v1; //骑自行车时间
time0 = x / v0; //跑步时间
time2 = t2 = x / v2; //开车时间
if (time1 < time0) //骑车快
{
if (durable1 == 0)
{
Sleep(1500);
printf("要啥自行车,么得自行车了!!!搁家里躺着叭,没有自行车这个距离不想出门了\n不就交500元嘛,拿去拿去,老子不干了!\n");
printf("要不要跑步去啊,这样说不定就不用交钱了!\n(去的话请输入1否则输入任意键)\n");
choice = getch();
if (choice == '1')
choice = 1;
else
{
printf("那就不去咯~\n");
money -= 500;
j++;
}
}
else
{
money += 1000; //工资:钱数+1000
durable1 -= 1;
Sleep(1000);
printf("这周【张三】平均用了%.2lf秒骑自行车到了公司,没有迟到,nice!\n拿工资啦!1000元!!\n", time1);
printf("车子用得久了,磨损了一点,当前耐久%d\n", durable1);
if (durable1 == 0)
{
printf("车子散架了!!你亲爱的【二轱辘奔驰】啊!!要不要去修呢,要花你2000大洋\n(如要修复请输入1否则输入任意键)\n");
choice = getch();
if (choice == '1')
{
money -= 2000;
Sleep(1500);
printf("修复成功,当前耐久值为5!爷的【二轱辘奔驰】回来啦!\n");
k++;
durable1 = 5;
}
else printf("没钱,不修\n");
}
}
}
if (time1 > time0 || choice == 1) //跑步快
{
if (time0 < 1200)
{
money += 800;
Sleep(1500);
printf("冲鸭!用了%.2lf秒安全到达!!\n拿到工资800元!\n", time0);
}
if (time0 >= 1200)
{
money -= 3000; //扣3000元
Sleep(1000);
printf("失去梦想!%.2lf秒迟到了还被可恶的资本家走了3000元血汗钱!!\n", time0);
j++;
}
v0 += 0.1; //步行速度增加!
Sleep(1000);
printf("经过一段时间的锻炼,【张三】的速度提高了!现在秒速%.2lf米\n", v0);
}
if (time1 == time0) //一样快
{
Sleep(1500);
printf("既然两个一样快%.2lf秒,那么……\n", time0);
Sleep(1500);
printf("今天就不打工了,睡吧睡吧!交500元旷工费就交吧\n");
money -= 500;
j++;
}
printf("可恶,今天完成任务又不是前三!\n");
Sleep(1500);
printf("我的目标是!购买一辆真正的奔驰!而这,需要20000元!\n");
Sleep(1500);
printf("于是吃饭花了100元");
Sleep(2000);
money -= 100;
day ++;
system("cls");
if (i == 0) //成就判断1
{
if (v0 > 3)
{
Sleep(1500);
printf("曾经我比不上那辆【二轱辘奔驰】,现在,我才是王者!!我,就是张三!\n获得成就【战胜了!二轱辘奔驰】\n");
i++;
}
}
if (i == 1)
{
if (v0 > 10.4)
{
Sleep(1500);
printf("超越了!!创造新的历史!\n获得成就【最强人类!张三参上】");
i++;
}
}
if (i == 2)
{
if (v0 > 11)
{
printf("达成结局0:【极限挑战者】\n");
Sleep(1500);
printf("【张三】走了,去了远方\n");
Sleep(1500);
printf("他要去寻找");
Sleep(1500);
printf("【人类的极限】!");
Sleep(1500);
printf("身份:【凹凸曼!】\nThe End");
exit(0);
}
}
if (money < 0 || j == 8) //成就判断2
{
printf("达成结局1:【走投无路打工人】\n");
Sleep(1500);
printf("终于,张三受不了了!\n");
Sleep(1500);
printf("做什么打工人!这打工人,不做也罢!\n");
Sleep(1000);
printf("几天后");
Sleep(1500);
printf("饿得两眼发昏的张三走向了停在路边的电瓶车……\n");
Sleep(1500);
printf("...");
Sleep(1500);
printf("...");
Sleep(1500);
printf("...\n");
Sleep(1500);
printf("张三入狱了,看着门牌上的【老九门下第一看守所-天字壹号】\n");
Sleep(1500);
printf("他,");
Sleep(1500);
printf("陷入了沉思\n");
Sleep(1500);
printf("身份:【囚犯?】\nThe End");
exit(0);
}
if (k == 5) //成就判断3
{
printf("达成结局2:【我的小“奔驰”】\n");
Sleep(1500);
printf("我的小“奔驰”时尚时尚最时尚!");
Sleep(1500);
printf("在这座孤独的城市,陪伴着孤单的你——【张三】的\n");
Sleep(1500);
printf("也就这辆从你清醒开始就在你身边的【二轱辘奔驰】了\n");
Sleep(1500);
printf("以后,还请多多指教,小轱辘\n");
Sleep(1500);
printf("你呢喃着这样的话语,进入了梦乡\n");
printf("...");
Sleep(1500);
printf("...");
Sleep(1500);
printf("...\n");
Sleep(1500);
printf("【张三】的故事还在继续下去");
Sleep(1500);
printf("陌生的人,陌生的城市,陌生的世界,熟悉的自己\n");
Sleep(1500);
printf("那么");
Sleep(1500);
printf("你的故事呢?\n");
Sleep(1500);
printf("身份:【永远的打工人?】\nThe End");
exit(0);
}
if (money >= 20000) //成就判断4
{
printf("达成结局3:【我张三居然……】");
Sleep(1500);
printf("终于!赚够钱了!\n");
Sleep(1500);
printf("兴冲冲地来到了全市最大的连锁汽车店,【张三】向经理提交自己信息后\n");
Sleep(1500);
printf("经理愣了一下,");
Sleep(1500);
printf("弯腰\n");
Sleep(1500);
printf("少爷,");
Sleep(1500);
printf("您终于回来了,我们张家都在等着您的回归!\n");
Sleep(1500);
printf("【张三】的眼神恍惚了一下\n");
Sleep(1500);
printf("所有记忆一下子涌了上来\n");
Sleep(1500);
printf("一抬头,经理看见了少爷眸子中一闪而过的锋芒\n");
Sleep(1500);
printf("“没想到,");
Sleep(1500);
printf("我张三居然……”\n");
Sleep(1500);
printf("...");
Sleep(1500);
printf("...");
Sleep(1500);
printf("...\n");
printf("身份:【张家少爷?】\n未完待续");
exit(0);
}
}
system("pause");
return 0;
}
void Int(double* a) //对输入数据进行判断
{
do
{
if (scanf_s("%lf", a) == 1)
{
break;
}
char choice;
while ((choice = getchar()) != '\n' && choice != EOF);
printf("输入的不是数字!\n");
} while (scanf_s("%lf", a) != 1);
}
部分运行结果
另
暂定3+1重结局