本人0基础开始学编程,我能学会的,你也一定可以,学会多少写多少。
下载安装请从官网入手,社区版本即可,这里主要使用的软件是VS2019,图标如下。
上一篇:从0开始学c语言-过渡-练习之猜随机数字游戏、求最大公约数_阿秋的阿秋不是阿秋的博客-CSDN博客
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C 语言有九种控制语句,可以分为以下三类:
1. 条件判断语句也叫分支语句: if 语句、 switch 语句;
2. 循环执行语句: do while 语句、 while 语句、 for 语句;
3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。
目录
练习1:
输出1000-2000年之间的闰年
1、被4整除,不能被100整除
2、被400整除
代码:
#include <stdio.h>
int main()
{
int year = 0;
int times = 0;
for (year = 1000; year <= 2000; year++)
{
if (year % 4 == 0)
{
if (year % 100 != 0)
{
printf("%d ", year);
times++;
}
}
if (year % 400 == 0)
{
printf("%d ", year);
times++;
}
}
printf("\n个数=%d", times);
return 0;
}
我们可以看到代码中用了三个if语句,前两个if是且的关系,后一个if与前两个if是或的关系,那么我们就可以
简化代码
int main()
{
int year = 0;
int times = 0;
for (year = 1000; year <= 2000; year++)
{
if (((year % 4 == 0)&&(year % 100 != 0))||(year % 400 == 0))
{
printf("%d ", year);
times++;
}
}
printf("\n个数=%d", times);
return 0;
}
练习2:
打印100-200之间的素数
素数也就是质数:只能被1和它本身整除,也就是说它不能被2和它本身-1之间的数字整除。
1·直接写
int main()
{
int a = 0;
int b = 0;
for (a = 100; a <= 200; a++) //循环100个数
{
for (b = 2; b < a; b++ ) //这就是2和它本身-1之间的数字
{
if (a % b == 0) //意思是如果能被整除就跳出循环,不能便继续b++验证能否被整除
break; //从这里跳出循环意味着不是素数
}
//来到这里的有两种情况
//1.循环到一半,break跳出来的不是素数的情况
//2.全部情况循环之后(b=a),不能被2和它本身-1之间的数字整除的素数
//第二种情况的素数需要被输出
//而我们找到的条件是a==b
if (a == b)
printf("%d ", a);
}
return 0;
}
2·自己加个条件判断
int main()
{
int a = 0;
int b = 0;
for (a = 100; a <= 200; a++)
{
int aqiu = 1; //默认是素数
for (b = 2; b < a; b++)
{
if (a % b == 0)
{
aqiu = 0; //不是素数
break;
}
}
//两种情况,aqiu==1的需要被输出
if (aqiu == 1)
printf("%d ", a);
}
return 0;
}
3·进一步优化
m=a*b
a和b一定至少有一个数字是小于等于开平方m的。(sqrt开平方)
从这个数的因数范围内去验证是否能被整除。
int main()
{
int a = 0;
int b = 0;
for (a = 100; a <= 200; a++)
{
int aqiu = 1; //默认是素数
for (b = 2; b <= sqrt(a); b++)
//sqtr()返回的是doublele类型的所以这里最好强转一下(int)sqtr()
{
if (a % b == 0)
{
aqiu = 0; //不是素数
break;
}
}
//两种情况,aqiu==1的需要被输出
if (aqiu == 1)
printf("%d ", a);
}
return 0;
}
4.源头上减少数据
#include <math.h>
int main()
{
int a = 0;
int b = 0;
for (a = 101; a <= 200; a+=2) //源头上筛检奇数
{
int aqiu = 1; //默认是素数
for (b = 2; b <= sqrt(a); b++)
//sqtr()返回的是doublele类型的所以这里最好强转一下(int)sqtr()
{
if (a % b == 0)
{
aqiu = 0; //不是素数
break;
}
}
//两种情况,aqiu==1的需要被输出
if (aqiu == 1)
printf("%d ", a);
}
return 0;
}
goto语句
goto语句多用于跳出两层或者多层循环
先简单认识一下它
int main()
{
silent: //可以写在goto后面,注意是冒号
//不过写在后面就是其他用途,而不是循环了
printf("想哭\n");
printf("不准哭,成年人的世界没有哭声\n");
goto silent;
return 0;
}
上面这段代码会一直循环这两句话,如果把silent放在其他地方也可以。这里只是演示一下goto会跳到哪里去。
注意:goto只能在一个函数范围内跳出来,不能跨函数
关机程序
要求:电脑在一分钟后关机,输入要求内容即可停止关机,否则一直输入直到正确停止关机或者输入错误一分钟后关机!
system指令是专门访问你的计算机的,想知道自己电脑指令的用法,就在电脑搜索cmd,就会打开这个窗口。
输入shutdown -s -t 60并回车
意思是准备在60s后执行关机程序,如果输入错误的话会直接告诉你怎么用。
这段代码的意思是,电脑在一分钟后关机,输入要求内容即可停止关机,否则一直输入直到正确停止关机或者输入错误一分钟后关机!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char qiu[20] = { 0 };
while (1)
{
system("shutdown /s /t 60");
//system执行系统命令,搜索cmd试试输入“shutdown /s /t 60”摁下回车就知道了,有的是-s才可以
printf("您的电脑即将在一分钟后关机,请立即输入:我爱你\n则可终止关机程序!\n");
scanf("%s", qiu);
if (strcmp(qiu, "我爱你") == 0)
{
system("shutdown /a"); //这是终止关机程序
printf("我也爱你~");
break;
}
}
return 0;
}
OK,就是这样!
想发给朋友玩的:
1、电脑搜一下服务
将编译后的代码,也就是.exe文件以服务的形式添加到电脑里去,改成自动启动,只要电脑开机就会执行。
2、release
弄成release运行一遍,在相应文件夹中找exe文件,改个名字换个图标,发给别人玩。
有机会我会出视频讲解,不过目前我也是小白呢,感觉不适合给大家乱梳理思路,今后重点放在知识点上,练习题就……放文章里存个档吧哈哈哈
下一篇:从0开始学c语言-14-关于(1)函数定义、函数分类、函数参数、函数调用以及函数练习_阿秋的阿秋不是阿秋的博客-CSDN博客