1. C语⾔是什么?
⼈和⼈交流使⽤的是⾃然语⾔,如:汉语、英语、⽇语
那⼈和计算机是怎么交流的呢?使⽤计算机语⾔。
⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计 算机 ⼯作的。
C语⾔就是众多计算机语⾔中的⼀种,当然C++/Java/Go/Python都是计算机语⾔。
2.C语言的执行过程
C语⾔是⼀⻔编译型计算机语⾔,C语⾔源代码都是⽂本⽂件,⽂本⽂件本⾝⽆法执⾏,必须通过编译器翻译和链接器的链接,⽣成⼆进制的可执⾏⽂件,可执⾏⽂件才能执⾏。
C语⾔代码是放在 .c 为后缀的⽂件中的,要得到最终运⾏的可执⾏程序,中间要经过编译和链接2个 过程。
⼀个工程⼀般都会有多个源文件组成,如下图所示,演示了源程序经过编译器和链接器处理的过程。
注:
1. 每个源文件(.c)单独经过编译器处理⽣成对应的目标文件(.obj为后缀的文件)
2. 多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)
3.通过质数打印代码初识C语言
3.1题目
找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字。
3.2题目解析
1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤ 循环解决。
3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
3.3代码实现
#include <stdio.h>
int main()
{
int a = 0;
for (a = 100; a <= 200;a++)//先打印100到200的数字
{
int b = 0;
int flag= 1;//先设素数为1
//每一次循环进来都会产生一个数字
//判断i是否是素数
//产生2~i-1之间的数字去试除i
for (b = 2; b < a ; b++)
{
if (a % b == 0)
{
flag= 0;
break;
}
}
if (flag == 1)
printf("%d", a);
}
return 0;
}
3.4代码进阶
1.偶数没有素数
int main()
{
int i = 0;
int count = 0;
for (i = 101; i <= 200; i+=2)
{
int flag = 1;//假设i是素数
//printf("%d ", i);
//每一次循环进来都会产生一个数字
//判断i是否是素数
//产生2~i-1之间的数字去试除i
int j = 0;
for (j = 2; j <= i - 1; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
//
if (flag == 1)
{
count++;
printf("%d ", i);
}
}
printf("\ncount = %d\n", count);
return 0;
}
2.利用开平方
a*b=m,则a和b中至少有一个<=根号下m
判断是否为素数,则被除数可以是2~根号下m
#include <math.h>
int main()
{
int i = 0;
int count = 0;
for (i = 101; i <= 200; i += 2)
{
int flag = 1;//假设i是素数
//printf("%d ", i);
//每一次循环进来都会产生一个数字
//判断i是否是素数
//产生2~i-1之间的数字去试除i
int j = 0;
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
count++;
printf("%d ", i);
}
}
printf("\ncount = %d\n", count);
return 0;
}
3.3代码结果
4.总结
C语言是一门计算机语言,对我们来说就像是一种和计算机对话的工具,我们不仅仅需要掌握好这门工具,更需要有使用这种工具去创作的能力。
就像打印素数,我们需要会使用C语言去打代码,还需要知道:
1.素数的定义能求解素数
2.具有逻辑能力,能将逻辑关系捋清楚,然后一步一步实现,避免出错
3.以及各种更加简单求解素数的知识,节约计算机资源
最后
道阻且长,行则将至;行而不辍,未来可期。
诸君共勉