C语言学习(闰年;n!;分数交叉加减;找最值;猜字游戏)

#include<stdio.h>
#include<time.h>
//int main()
//{
// //在switch 语句当中 "continue"是没有的 “continue"是循环语句当中的
// //define 预处理指令
// //if 语句当中 0 表示假 ;非0 表示真 (不是1一直表示真)
// //switch(c) 语句不要求顺序可言(case ;default位置可以随意摆放); 其中 c 可以是整形常量表达式(int long char ...)(浮点型是不行的)
// //switch 没有 break 就继续执行其下方的语句
//
//
// //闰年:1.能被4整除并且不能被100整除;2.能被400整除
// //求;1000~2000之间的闰年
//
// int i = 0;
// int year = 0;
// int cun = 0;
//
// for (year = 1000; year <= 2000; year++)//先产生数字范围
// {
// if ((year%40) && (year%100!=0) || (year%4000))
// {
// printf("%d ", year);
// i++;
// }
// }
// printf("%dn", i);
// return 0;
//}

/int main()
//{
//sqrt()--开平方的数学库函数 #include<math.h>
//素数求解的n种境界 文章!!!!!
//while ()-语句当中 条件体的循环次数总是比循环体多一次!!!!!

////计算1/1-1/2+1/3-1/4....+1/99-1/100
//int i = 0;
//double sum = 0.0;//double 是0.0
//int flag = 1;
//for (i = 1; i <= 100; i++)
//{
// sum += flag*1.0 / i;//因为为小数,所以应该是1.0
// flag = -flag;
//}
//printf("%lf", sum);
////判断数字当中的最大值
// int arr[] = { 1, 2, 3, 1 - 5, 3, 7, 12, 11, 16, 20, };
// int i = 0;
// int max = arr[0];
// int sz = sizeof(arr) / sizeof(arr[0]);
// for (i = 1; i < sz; i++)
// {
// if (arr[i]>max)
// {
// max = arr[i];
// }
// }
// printf("最大值是=%d", max);


//
////九九乘法表 !!!!! 很重要
// int i = 0;
// for (i = 1; i <= 9; i ++)//打印行
// {
// int j = 1;
// for (j = 1; j <= i; j++)//打印列
// {
// printf("%d*%d=%-2d", i, j, i*j);//-2(2位)d表达的是输出左对齐!!!!! 2d的话是右对齐!!!!!
// }
// printf("n");
// }
//

// return 0;
//}





////猜数游戏一
//
// //1 计算机随机立一个数 number
// //2 负责记次数的变量 count初始值为0
// //3让用户输入一个数a
// //4count+1
// //5 判断a和number的大小 如果a大 则输出“大” 反之“小”
// //6如果a与number不一样无论如何回到步骤3
// //7否则程序输出“猜中”与次数 后结束
//
// //循环条件a与number 一不一样
// //if else 语句实行
// srand(time(0));//目的 让随机数真的向随机数的样子(目前不涉及)
// int number = rand() % 100 + 1;// 召唤rand ()就得到一个随机数
// int count = 0;
// int a = 0;
// printf("我已经想好一个数1-100之间的数了。");
// do{
// printf("猜这个数是多少:");
// scanf_s("%d", &a);
// count++;
// if (a > number){
// printf("你猜的数太大了");
//
// }
// else if (a < number){
// printf("你猜的数太小了");
//
// }
// } while (a != number);//不相同
// printf("太好了,你用了%d次猜对了答案。n", count);
//


// //召唤rand ()就得到一个随机整数0~rand_max(32767)之间 但是随即生成的数每次顺序是一样的!!!!!!
// //srand(time(0));//在设置rand()之前要用srand(time(0)使得其真正的随机 【time(0)-时间戳!!!!!】
// 当前计算机时间-计算机起始时间!!!!!
// //int a = rand();
// //printf("%dn", a%100);//a%100对a取余 留下10位和个位的数 相当于每次得到一个100以内的数



//猜数字游戏二
//
void menu(){
printf("******************************n");
printf("*** 1.play 0.exit ******n");
printf("******************************n");
}

void game()
{
int ret = 0;
int guess = 0;//猜的数字

printf("猜数字游戏开始n");
//生成随机数rand()后猜数字
//拿时间戳来设置随机数
// 只要被调用一次就可以了 所以应该放在main 里 "srand((unsigned int) time(0));"161行
//强制类型转换其得到的值是time()所需要的unsigned int _ 类型 应该包含头文件#include<time.h>
ret = rand()%100+1;//因为其范围是0~32767之间的 所以%100+1使得其范围在0~100之间
//测试代码 printf("%dn", rand());
//猜数字
printf("请猜数字n");
while (1)
{
scanf_s("%d", &guess);
if (guess > ret)
{
printf("猜大了n");
}
else if (guess < ret)
{
printf("猜小了n");
}
else
{
printf("恭喜你猜对了!!!!!n");
printf("是否进行新一轮游戏n");
break;
}
}

}
int main()
{
srand((unsigned int)time(0));
int input = 0;
do{


menu();
printf("请选择是否开始游戏:>n");//
scanf_s("%d", &input);
switch (input)
{
case 1:
game();//猜数字游戏
break;
case 0:
printf("退出游戏n");
break;
default:
printf("选择错误n");
break;
}

} while (input );//inout ==1;继续进行循环 input==0,终止循环
return 0;
}
发表评论

相关文章