例子:随机生成一个1-100之间的数,猜对了就继续游戏,猜错了就给提示大了还是小了,最终提示猜对所用的次数
int main()
{
int val = 0; // 输入值
int count = 0;// 总数
int rx = rand() % 100 + 1; // 随机1-100值
for (; ;) // 无限循环
{
printf("请输入你猜的数值:");
scanf("%d ", &val);
count += 1;
if (val < rx) printf("你猜小了\n");
else if (val > rx) printf("你猜大了\n");
else printf("你猜对了\n");
printf("count = %d\n", count);
}
return 0;
}
但是这个随机数是一个伪随机数,也就是第一次启动和第二次启动生成的是同一个随机数
所以我们需要一个随即因子,time() , 需要在#include<time.h>头文件中,意思是取得系统当前时间,但只精确的到秒级
int main()
{
int val = 0;
int count = 0;
int rx = 0;
srand(time(NULL));
rx = rand() % 100 + 1;
}
这样就可以每次调用都是不同的随机值
输入年月日,找出最靠前的时间,当输入的年月日,小于等于0时,结束程序
int main()
{
int year = 1, month = 1, day = 1;
int myear = INT_MAX, mmonth = 12, mday = 31; //表示年月日都是最大的,这样输入的任何值都是靠前的
for (; ;)
{
bool tag = false;
printf("inpit year month day (yyyy/mm/dd)\n");
scanf("%d %d %d", &year, &month, &day);
if (year <= 0 || month <= 0 || day <= 0)
{
break;
}
if (year < myear)
{
tag = true;
}
else if (year == myear && month == mmonth && day < mday)
{
tag = true;
}
if (tag)
{
myear = year;
mmonth = month;
mday = day;
}
}
printf("最早日期 year : %d month : %d day : %d \n", myear, mmonth, mday);
return 0;
}
也可以用结构体封装
struct Date
{
int year;
int month;
int day;
};
int main()
{
struct Date val = { 1 , 1 ,1 };//初始化
struct Date min = { INT_MAX , 12 ,13 }; //存放的是最大值
}