当前位置:网站首页>C语言初级—判断一个数是不是素数(函数封装)
C语言初级—判断一个数是不是素数(函数封装)
2022-08-02 14:03:00 【iccoke】
判断一个数是不是素数
基本思想:从键盘获取一个数字,判断其是不是素数并用函数形式封装
首先函数主题是判断一个数是不是素数和函数体调用
素数是指除了一和他本身之外不能被其他数整除的数
因此从二开始作为键盘输入数的除数
如果在二到键盘输入数之间的能有别的数将其整除说明该数不是素数
反之在遍历了二到键盘输入数之后依旧没有被整除的数即为素数
依此思想得到的初始代码如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
bool isprimer(int num) {
int i;
bool flag=false;
for (i = 2; i < num; i++)
{
if (num % i == 0)
break;
}
if (i == num)
{
flag = true;
}
return flag;
}
int main() {
int num;
scanf("%d", &num);
bool result = isprimer(num);
if (result == true)
{
printf("这是素数\n");
}
else {
printf("这不是素数\n");
}
return 0;
}代码体涉及的函数体及其调用
bool isprimer(int num) {
int i;
bool flag=false;
for (i = 2; i < num; i++)
{
if (num % i == 0)
break;
}
if (i == num)
{
flag = true;
}
return flag;
}
bool为函数返回值类型 Isprimer为函数名(函数名要做到见名知意)
其中false 和 true不需要进行额外定义
return的返回值需要与函数返回值类型相同
函数的调用
int main() {
int num;
scanf("%d", &num);
bool result = isprimer(num);
if (result == true)
{
printf("这是素数\n");
}
else {
printf("这不是素数\n");
}
return 0;
}函数的调用出现在
bool result = isprimer(num);
num为实际参数,而函数体内定义的为形式参数,两者在数值上相同,但在意义上不同,即实际参数和形式参数其中任一改变不会影响另一个参数
因为 isprimer()得到的值为bool类型,因此需要定义一个bool类型的result来接收isprimer()返回的值
其中涉及头文件#define _CRT_SECURE_NO_WARNINGS的使用
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.(这是在不添加头文件#define _CRT_SECURE_NO_WARNINGS下使用scanf的错误)。
因此根据错误我们选择使用scanf_s代替scanf或者使用头文件
但scanf_s在vs上可以运行,但是换成其它编译器则会出现问题,因此为了方便搬运和代码复用,我们在使用scanf时应加头文件#define _CRT_SECURE_NO_WARNINGS。
代码优化
根据思想,我们发现代码中出现冗余,做如下修改
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
bool isprimer(int num) {
int i;
bool flag=false;
for (i = 2; i < num; i++)
{
if (num % i == 0)
break;
else {
flag = true;
}
}
return flag;
}
int main() {
int num;
scanf("%d", &num);
bool result = isprimer(num);
if (result == true)
{
printf("这是素数\n");
}
else {
printf("这不是素数\n");
}
return 0;
}边栏推荐
猜你喜欢

Building and getting started with the Flask framework

Creating seven NiuYun Flask project complete and let cloud

Briefly write about the use and experience of PPOCRLabel
![[ROS] (02) Create & compile ROS package Package](/img/c2/5931d5cbade509c6ca34d66a274756.png)
[ROS] (02) Create & compile ROS package Package

Flask项目的完整创建 七牛云与容联云

使用云GPU+pycharm训练模型实现后台跑程序、自动保存训练结果、服务器自动关机

What's wrong with running yolov5 (1) p, r, map are all 0

云GPU(恒源云)训练的具体操作流程

paddleocr window10初体验

chapter7
随机推荐
YOLOv7使用云GPU训练自己的数据集
yolov5,yolov4,yolov3乱七八糟的
Flask-RESTful请求响应与SQLAlchemy基础
使用云GPU+pycharm训练模型实现后台跑程序、自动保存训练结果、服务器自动关机
Paddle window10 environment using conda installation
redis delay queue
第七单元 ORM表关系及操作
8581 Linear linked list inversion
Error Correction Design Principle of Hamming Check Code
drf路由组件Routers
8580 合并链表
关于密码加密的一点思路
window10下半自动标注
Unit 3 view layer
c语言三子棋详解!!! (电脑智能下棋)(附上完整代码)
Implementation of redis distributed lock and watchdog
第十一单元 序列化器
MarkDown语法汇总
Flask框架深入二
Deep learning framework pytorch rapid development and actual combat chapter3