其实这个篇章放在这里有点小晚了,一直觉得好像单独放成一篇有点哪里不对,本来想说因为不是必要的一个语法,但对於写程序来说又有一定的重要性。
所以想了想还是要介绍一下,不过就当成番外篇来放吧!
要说到什麽重要什麽不重要,我们来提一下程序设计中重要的原则有什麽:
e.g. 比如说我们今天要写一个程序,先输入一个数字,然後我们要列印出所有小於它的质数,并重复两次。
(1) 如果是这样子放两次程序码是很冗长的。
#include <stdio.h>
int is_prime(int);
int main()
{
int input_num = 0;
//第一次输入
scanf("%d", &input_num);
//判断输入的整数是否大於1,否则重新输入
while(input_num<2){
scanf("%d", &input_num);
}
//开始处理
for(int i=2; i<=input_num; i++){
//回传1就是质数,要列印出来
if(is_prime(i)==1){
printf("%d ", i);
}
}
printf("\n==========\n");
//第二次输入
scanf("%d", &input_num);
//判断输入的整数是否大於1,否则重新输入
while(input_num<2){
scanf("%d", &input_num);
}
//开始处理
for(int i=2; i<=input_num; i++){
//回传1就是质数,要列印出来
if(is_prime(i)==1){
printf("%d ", i);
}
}
return 0;
}
int is_prime(int num){
//判断状态
int k=0;
for(int i=2; i<num; i++){
//可被整除的话,则不是质数
if(num%i==0){
k=1;
break;
}
}
//k=0时,是质数
if(k==0){
return 1;
}
//k=1时,不是质数
else{
return 0;
}
}
(2) 但我们可以透过回圈来替代重复次数,减少多余的重复程序码
#include <stdio.h>
int is_prime(int);
int main()
{
int input_num = 0;
for(int t=0; t<2; t++){
scanf("%d", &input_num);
//判断输入的整数是否大於1,否则重新输入
while(input_num<2){
scanf("%d", &input_num);
}
//开始处理
for(int i=2; i<=input_num; i++){
//回传1就是质数,要列印出来
if(is_prime(i)==1){
printf("%d ", i);
}
}
printf("\n==========\n");
}
return 0;
}
int is_prime(int num){
//判断状态
int k=0;
for(int i=2; i<num; i++){
//可被整除的话,则不是质数
if(num%i==0){
k=1;
break;
}
}
//k=0时,是质数
if(k==0){
return 1;
}
//k=1时,不是质数
else{
return 0;
}
}
#include <stdio.h>
int is_prime(int);
int main()
{
int input_num = 0;
scanf("%d", &input_num);
//判断输入的整数是否大於1,否则重新输入
while(input_num<2){
scanf("%d", &input_num);
}
//依序使用回圈跑小於或等於输入整数之数,并判断是否质数、要不要列印
for(int i=2; i<=input_num; i++){
//回传1就是质数,要列印出来
if(is_prime(i)==1){
printf("%d ", i);
}
}
return 0;
}
int is_prime(int num){
//判断状态
int k=0;
for(int i=2; i<num; i++){
//可被整除的话,则不是质数
if(num%i==0){
k=1;
break;
}
}
//k=0时,是质数回传1
if(k==0){
return 1;
}
//k=1时,不是质数回传0
else{
return 0;
}
}
像是以下就是判断质数的函式
int is_prime(int num){
//判断状态
int k=0;
for(int i=2; i<num; i++){
//可被整除的话,则不是质数
if(num%i==0){
k=1;
break;
}
}
//k=0时,是质数回传1
if(k==0){
return 1;
}
//k=1时,不是质数回传0
else{
return 0;
}
}
正确性
相信正确性是一个非常基础的事情吧,如果连基本需求都有错误、做不到,这个程序可以说不需要存在了,甚至有时候一点误差就会产生严重的後果,所以我们在写程序时必须时时测试,并即时更正找到的bug。
执行效率
在进行程序设计时,我们需要注意程序的效率,可以注意演算法中提到的时间复杂度,越是能简化次数,程序执行的效率越佳。
int is_prime(int num){
//判断状态
int k=0;
for(int i=2; i<=sqrt(num); i++){
//可被整除的话,则不是质数
if(num%i==0){
k=1;
break;
}
}
//k=0时,是质数回传1
if(k==0){
return 1;
}
//k=1时,不是质数回传0
else{
return 0;
}
}
语法 | 说明 |
---|---|
//单行注解 | 在注解的最左侧加入「//」,就可以让程序忽略它,不产生语法错误。 |
/多行注解/ | 使用包住「/* */」注解,就可以写多行的注解了。 |
#include <stdio.h>
int main()
{
int input_num = 0;
/* 第一部分
输入处理 */
scanf("%d", &input_num);
//判断输入的整数是否大於1,否则重新输入
while(input_num<2){
scanf("%d", &input_num);
}
/* 第二部分
列印星星的部分 */
//行数
for(int i=1; i<=input_num; i++){
//单行星星数
for(int j=0; j<i; j++){
printf("*", i);
}
printf("\n");
}
return 0;
}
<<: 为了转生而点技能-JavaScript,day17(原型-prototype、自订原型、新增method
>>: HTML笔记(04)-HTML里的formatting
Terraform Terraform 是什麽 Terraform 是由 HashiCorp 建立的...
在网页中不可能只是按照设定好的 URL 去取得网页页面,在许多时候都需要带入不同的参数去取得不同的资...
前言 不知不觉,铁人赛的赛程已经来进行了一半,每天发文使得生活过得非常充实。也感谢这里的许多高手发表...
Within a small application, we can just use the ma...
animated_text_kit 文字特殊效果的第三方,可以参考文档的样式作选择 使用起来类似是F...