江南才子 发表于 2021-7-26 13:59:01

C语言编程学习笔记(鹏版)2021/7/20

%-2d表示这个数有两位,即1表示1 ,2表示2 ,且靠左对齐
以0x开头的数字一般为16进制
时间戳:当前计算机的时间减去计算机的起始时间(1970/1/1/0:0:0)=输出的数字(秒)
微软有一个工具为MSDN,它相当于字典,可以查找关键字
猜数字游戏程序制作(超好玩\qwq/)
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void menu()
{
printf("###########################\n");
printf("#####  1.play    0.exit  ####\n");
printf("###########################\n");
}
void game()
{
int ret=0;
int guess=0;
ret=rand()%100+1;                          //rand()有生成固定随机整数(范围在0到32767之间)的功能但是需要用srand
                                                           函数来形成可以变化的生成随机数的内部程序;头文件为stdlib.h
                                                        //%100+1用来调整范围为0—100,因为一个数模100,结果一定在0到99之
                                                           间,再加1就是0-100
while(1)
{
printf("请输入您猜测的值:\n");
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了\n");
}
else if(guess<ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你qwq猜对了\n");
break;
}
}
}
int main()
{
int input=0;
srand((unsigned int)time(NULL));                  //srand((unsigned int)time())可以生成一个变化的随机数生成器,()
                                                                        里的是时间戳来作为随机的起点;
                                                                     //time的返回值为time_t,本质为long长整型,其头文件为time.h
                                                                    //NULL为空指针
do
{
menu();
printf("请选择>:");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏");
break;
default:
printf("选择错误");
break;
}
}
while(input);                              //判断input为0(假)或1(真)
return 0;
}
goto语句
C语言中提供了可以随意滥用的goto语句和标记跳转的标号;
从理论上goto语句是没有必要的,实践中没有goto语句也可以很容易写出代码;
但在某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环;
这种情况使用break是达不到目的的,它只能从最内层循环退出到上一层的循环;
int main()
{
again:                                   //goto会回到这里的again符号这里循环
printf("hello qwq\n");
goto again;                         //goto指跳到哪里去
return 0;
}
int main()
{
printf("hollo qwq\n");
goto again;                          //goto跳到下面的again符号,所以不会显示"您好"
printf(“您好\n”);
again:
printf("hehe\n");
return 0;
}
goto语句的真正适合的场景如下(类似传送门):
for(...)
for(...)
{
for(...)
{
for(disaster)            //disaster指灾难,此处goto作用为直接跳出嵌套去处理灾难对应的另一方面程序
goto error;
}
}
...
限时关机程序:
#inculd<stdlib.h>
#inculd<stdio.h>
#include<string.h>
int main()
{
char input={0};
system("shutdown -s -t 60");                    //system指执行程序命令,其头文件为stdlib.h;shutdown-s是设置关机,加上-t是设置时间关机,
                                                                    60是运行该指令后60秒时关机
again:
printf("请注意,你的电脑将在1分钟后关机,\n如果输入:qwq \n可以取消关机\n请输入:");
scanf("%s",input);
if(strcmp(input,"qwq")==0)                     //strcmp用于两个字符串的比较,头文件为string.h
{
system("shutdown -a");
}
else
{
goto again;                                 //使其可以在输入错误时,再次输入
}
return 0;
}
换成while循环也可以达到目的,所以通常不用goto
电脑里的"服务"功能以管理员身份可以改程序属性里的启动类型,结合导入新程序代码以服务的形式可以玩花样(嘿嘿嘿qwq最佳损友)


文档来源:51CTO技术博客https://blog.51cto.com/u_15293084/3180058
页: [1]
查看完整版本: C语言编程学习笔记(鹏版)2021/7/20