本周C语言的学习依旧是循环结构的使用,不过这次的学习更多的是掌握循环结构的深层次用法,以及合理使用适合的语句进行编程。
例如:
for 语句对于数字结构计算循环会更加清晰和简单;
while 语句的使用与for 语句差不多,但两者不能等同;当两者遇上continue语句时,彼此的循环体会有所不同,若不注意就会陷入死循环中;
do-while 语句与while 语句没有太大差别,不过要注意循环开始的地方两者不同;
说完循环结构后,我在这里分享一道题目,其中包括了循环体和自定义函数的使用;
这是一道关于哥德巴赫猜想体题目的解答,
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
#include<stdio.h>
#include<math.h>
int prime(int n)//自定义一个函数判断一个数是否为素数
{
int i;
if(n==2)
return 1;
for(i=2;i<=sqrt(n);i++)//缩小范围,提高运算的效率
{
if(n%i==0)
return 0;
}
return 1;
}
int main(void)
{
int num,i;
scanf("%d",&num);
for(i=2;i<=num/2;i++)//设计循环,寻找素数
{
if(prime(i)&&prime(num-i))//当两者都为真时结束语句,打印答案
{
printf("%d = %d + %d\n",num,i,num-i);
return 0;
}
}
return 0;
}
在代码段中,我用了自定义函数对给定的参数进行是否为素数的判断,这样做使得代码之间的工作模块区分开来,修改或者使用更加方便;
值得注意的是,我在函数里使用return 0;以及return 1;这两个结束语句,return 0 代表了语句执行之后结果为假,结束执行;return 1则表示结果为真,结束运行;这里包含的是布尔逻辑的思想
还有在主函数中for 语句的return 0也很重要,这里要用来跳出循环,不然程序会一直执行下去;我先前做题就是因为这一小点导致自己卡壳一个小时,这说明循环的结束十分重要,在以后的编程里要多多注意。
后面又是我啰嗦水文章的时间了;这周仍然忙的要死,果然在大学都是卷王啊。
本周周二前去深圳永联科技公司参加企业参观,了解了生产车间的操作以及一些主要芯片的研发环节,说实话大开眼界,不过路程太远了,在车上呆了足足三小时。之后和一些公司部长开完见面会合影后就结束了。
还有就是下周要有一堆考试啦,准备复习。